برای استفاده از سرویسهایی نظیر WebRTC ، دسترسی به Webcam ، میکروفون کاربر و موارد دیگری نیاز است تا از یک SSL Certificate بر روی سرویس دهنده محلی خود استفاده کنیم تا مرورگرها امکان دسترسی مورد نظر را بدهند.
برای این کار نیاز به ایجاد فایل crt و key داریم ، با استفاده از برنامه openssl که بر روی همه سیستم عامل ها در دسترس است یک گواهینامه دیجیتال SSL برای دامنه فرضی example.com میسازیم.
ابتدا فایل Config مربوط به گواهی نامه را میسازیم:
nano example.com.conf
و مقادیر زیر را با تغییر example.com به دامنه مورد نظر خود در آن وارد و ذخیره میکنیم.
[req]
default_bits = 2048
default_keyfile = example.com.key
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_ca
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = US
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = New York
localityName = Locality Name (eg, city)
localityName_default = Rochester
organizationName = Organization Name (eg, company)
organizationName_default = localhost
organizationalUnitName = organizationalunit
organizationalUnitName_default = Development
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_default = example.com
commonName_max = 64
[req_ext]
subjectAltName = @alt_names
[v3_ca]
subjectAltName = @alt_names
[alt_names]
DNS.1 = example.com
DNS.2 = 127.0.0.1
حالا با دستور زیر فایل های crt و key را ایجاد میکنیم:
sudo openssl req -x509 -nodes -days 3065 -newkey rsa:2048 -keyout example.com.key -out example.com.crt -config example.com.conf
اگر نمیدانید چطور FQDN با مقدار example.com را مانند localhost بر روی آدرس IP محلی خود متناظر کنید این پست را بخوانید.
حالا میتوانید از دو فایل crt و key در تنظیمات سرویس دهنده خود استفاده کنید. ولی این کار به تنهایی باعث نمیشود که مرورگرها CA محلی شما را به عنوان CA معتبر شناسایی کنند. برای مرورگرها بر پایه Chromium میتوانید از دستور زیر استفاده کنید:
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n "example.com" -i example.com.crt
برای مرورگر فایرفاکس با انتخاب فایل مورد نظر امکان اضافه کردن به ROOT CA وجود دارد.
حالا سرویس دهنده وب (Apache, Nginx, ..) را Reset میکنیم و وقتی سایت مورد نظر را در مرورگر باز کنیم گواهی دیجیتال را به عنوان Valid شناسایی خواهد کرد.