برای استفاده از سرویسهایی نظیر WebRTC ، دسترسی به Webcam ، میکروفون کاربر و موارد دیگری نیاز است تا از یک SSL Certificate بر روی سرویس دهنده محلی خود استفاده کنیم تا مرورگرها امکان دسترسی مورد نظر را بدهند.
برای این کار نیاز به ایجاد فایل crt و key داریم ، با استفاده از برنامه openssl که بر روی همه سیستم عامل ها در دسترس است از طریق دستور زیر برای دامنه mysite.local یک گواهینامه دیجیتال SSL میسازیم.
openssl req -x509 -out mysite.crt -keyout mysite.key \
-newkey rsa:2048 -nodes -sha256 -days 3000 \
-subj '/CN=mysite.local' -extensions EXT -config <( \
printf "[dn]\nCN=mysite.local\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:mysite.local\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
اگر نمیدانید چطور FQDN با مقدار mysite.local را مانند localhost بر روی آدرس IP محلی خود متناظر کنید این پست را بخوانید.
حالا میتوانید از دو فایل crt و key در تنظیمات سرویس دهنده خود استفاده کنید. ولی این کار به تنهایی باعث نمیشود که مرورگرها CA محلی شما را به عنوان CA معتبر شناسایی کنند. برای مرورگرها بر پایه Chromium میتوانید از دستور زیر استفاده کنید:
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file
برای مرورگر فایرفاکس با انتخاب فایل مورد نظر امکان اضافه کردن به ROOT CA وجود دارد.
حالا سرویس دهنده وب (Apache, Nginx, ..) را Reset میکنیم و وقتی سایت مورد نظر را در مرورگر باز کنیم گواهی دیجیتال را به عنوان Valid شناسایی خواهد کرد.