Bedrud التوثيق

للشبكات المعزولة - لا نطاق عام، لا إنترنت صادر، اتصال محدود.

تتطلب المتصفحات HTTPS موثوقًا للوصول إلى الكاميرا/الميكروفون عبر WebRTC. الشهادات الموقعة ذاتيًا تعمل لكنها تظهر تحذيرات. لإعداد نظيف، أنشئ CA خاصًا ووزّعه على العملاء.

إنشاء CA خاص وشهادة خادم

تتطلب المتصفحات الحديثة Subject Alternative Names (SANs) في الشهادات. يقوم المثبت بذلك تلقائيًا.

الخيار 1: استخدام المثبت (موصى به)

يقوم أمر bedrud install بإنشاء شهادات موقعة ذاتيًا مع SANs مناسبة لعناوين IP والمجالات المحددة:

sudo bedrud install --tls --ip YOUR_SERVER_IP

لتضمين اسم مجال أيضًا:

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

الخيار 2: إنشاء الشهادة يدويًا

إذا كان الإنشاء المدمج للمثبت لا يتناسب مع سير عملك، أضف علامات -addext إلى أوامر openssl:

#### 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 في Trusted Root CAs، وليس وسيطًا
الشهادة منتهية الصلاحيةشغل sudo bedrud cert renew لإعادة التوليد (تجديد تلقائي كل 24 ساعة عند 09:00)
عدم تطابق CNالمتصفحات الحديثة تتجاهل حقل CN — SAN هو المرجع. استخدم إنشاء الشهادات المدمج في المثبت (موصى به) أو أضف -addext 'subjectAltName=...' إلى أمر openssl
SANs مفقودةالمتصفحات الحديثة تتجاهل حقل CN. استخدم إنشاء الشهادات المدمج في المثبت (موصى به) أو أضف -addext 'subjectAltName=...' إلى أمر openssl

انظر أيضًا