Bedrud ドキュメント

分離されたネットワーク向け - パブリックドメインなし、外部インターネット接続なし、接続制限あり。

ブラウザは WebRTC 経由のカメラ/マイクに信頼済み HTTPS を要求します。自己署名証明書でも動作しますが警告が表示されます。警告なしでクリーンに設定するには、プライベート CA を生成しクライアントに配布します。

プライベート CA とサーバー証明書の生成

最新のブラウザでは証明書に Subject Alternative Names (SANs) が必要です。インストーラーが自動的に処理します。

オプション 1:インストーラーを使用(推奨)

bedrud install コマンドは、指定された IP とドメインに対して適切な SAN を持つ自己署名証明書を生成します:

sudo bedrud install --tls --ip YOUR_SERVER_IP

ドメイン名も含める場合:

sudo bedrud install --tls --ip YOUR_SERVER_IP --domain your.domain.com

オプション 2:手動による証明書生成

インストーラーの組み込み生成がワークフローに合わない場合は、openssl コマンドに -addext フラグを追加します:

#### Ed25519 (matches Bedrud's built-in generation, recommended)
 
```bash
openssl genpkey -algorithm ed25519 -out ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt \
  -subj "/CN=Bedrud Internal CA"
 
openssl genpkey -algorithm ed25519 -out server.key
openssl req -new -key server.key -out server.csr \
  -subj "/CN=<your-server-ip-or-hostname>" \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
openssl x509 -req -days 1825 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip YOUR_SERVER_IP

ECDSA P256 (alternative)

openssl ecparam -genkey -name prime256v1 -out ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt \
  -subj "/CN=Bedrud Internal CA"
 
openssl ecparam -genkey -name prime256v1 -out server.key
openssl req -new -key server.key -out server.csr \
  -subj "/CN=<your-server-ip-or-hostname>" \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
openssl x509 -req -days 1825 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip YOUR_SERVER_IP

RSA (legacy compatibility, larger keys)

openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt \
  -subj "/CN=Bedrud Internal CA"
 
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr \
  -subj "/CN=<your-server-ip-or-hostname>" \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
openssl x509 -req -days 365 -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt \
  -addext "subjectAltName=IP:YOUR_SERVER_IP"
 
sudo ./bedrud install --tls --cert server.crt --key server.key --ip YOUR_SERVER_IP

クライアントトラストストアへの CA 追加

ca.crt をすべてのクライアントマシンに配布します:

Windows

certmgr.msc  # Right-click ca.crt → Install Certificate → Trusted Root CAs

macOS

sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain ca.crt

Linux(Debian/Ubuntu)

sudo cp ca.crt /usr/local/share/ca-certificates/bedrud-ca.crt
sudo update-ca-certificates

Linux(Arch/Fedora)

sudo cp ca.crt /etc/pki/ca-trust/source/anchors/bedrud-ca.crt
sudo update-ca-trust

ブラウザを再起動してから https://YOUR_SERVER_IP(サーバーの実際の IP アドレスに置き換えてください。例:192.168.1.100)を開きます。再起動後、証明書が信頼済みとなり、カメラ/マイクへのアクセスが警告なしで動作します。

トラブルシューティング

問題解決策
ブラウザがまだ証明書を信頼できないと警告するブラウザキャッシュをクリアし、CA インストール後にブラウザを再起動
カメラ/マイクがブロックされるCA が中間 CA ではなく信頼済みルート CA にあることを確認
証明書の有効期限切れsudo bedrud cert renew を実行して再生成(毎日 09:00 に自動更新)
CN の不一致最新のブラウザは CN フィールドを無視します — SAN が優先されます。インストーラーの組み込み証明書生成(推奨)を使用するか、openssl コマンドに -addext 'subjectAltName=...' を追加してください
SANs 不足最新のブラウザは CN フィールドを無視します。インストーラーの組み込み証明書生成(推奨)を使用するか、openssl コマンドに -addext 'subjectAltName=...' を追加してください

関連項目