工具
https 的場景運用越來越廣泛,有時在開發環境中也需要使用 https 來進行開發或測試,這時自簽名證書就成了快速應對這一場景的省時省力的好幫手。
常見的自簽名方案有通過 OpenSSL 來生成,不過現在有更快捷方便的工具 https://github.com/FiloSottile/mkcert。
生成證書
Windows 下能夠下載對應的工具 https://github.com/FiloSottile/mkcert/releases,使用命令生成本地域名證書
mkcert-v1.4.3-windows-amd64.exe localhost 127.0.0.1 ::1 10.13.69.59 192.168.1.80
安裝證書
mkcert-v1.4.3-windows-amd64.exe -install
配置 nginx
ssl_certificate "/etc/nginx/conf.d/localhost+4.pem";
ssl_certificate_key "/etc/nginx/conf.d/localhost+4-key.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
到此,瀏覽器應該能夠使用 https 正常訪問網頁,不過期間有個小插曲,因為我的 Windows 電腦安裝的 VMware,這玩意有個 VMwareHostd 服務監聽了 443 端口,導致我的瀏覽器一直在報 NET:ERR_CERT_AUTHORITY_INVALID 這個錯誤,但是我更換 nginx 代理暴露的端口后又能正常訪問,這一度讓我以為 443 端口對瀏覽器來說有某種神秘力量,好在后來停掉 nginx 后發現 443 依舊可以 telnet 通,這才知道原來是被 VMwareHostd 占用了,停掉這個服務后就一切正常了。
