mkcert 是一个使用 GO 语言编写的生成本地自签证书的小程序,具有跨平台,使用简单,支持多域名,自动信任 CA 等一系列方便的特性可供本地开发时快速创建 https 环境使用。

https://github.com/FiloSottile/mkcert

Ubuntu 中安装

sudo apt install libnss3-tools
wget https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-linux-amd64
mv mkcert-v1.3.0-linux-amd64 mkcert
chmod +x mkcert
cp mkcert /usr/local/bin/

生成并将根 CA 证书加入本地可信 CA

mkcert -install
Using the local CA at "/home/matt/.local/share/mkcert" ✨
The local CA is now installed in the system trust store! ⚡️ 
ls /home/matt/.local/share/mkcert
rootCA-key.pem  rootCA.pem

生成网站的证书

mkcert 192.168.1.172

将证书部署到网站后,服务器本机访问:

curl -I https://192.168.1.172:8888

已经不提示证书错误了。

客户机访问仍提示证书错误(不能验证证书)。

将 rootCA.pem 副本命名为 rootCA.crt 发给客户端用户,手动导入到“受信任的根证书颁发机构”。

重启浏览器后访问网站可以看到连接变成安全的了: