利用 mkcert 快速生成自签证书
在某些开发场景下,项目必须使用https才能进行使用,比如音视频,webtrc等需要调用chrome的麦克风和摄像头,浏览器为了安全起见就必须要求是https才允许调用。然而,在本地开发环境中配置 HTTPS 可能会比较麻烦。幸运的是,mkcert
是一个简单易用的工具,可以帮助我们快速生成自签名证书。本文将介绍如何使用 mkcert
生成自签名证书,并在内网环境或者本地开发环境中使用它们。
什么是 mkcert?
mkcert
是一个简单的工具,可以快速生成受信任的自签名证书。它会自动创建一个本地 CA(证书颁发机构),并将其安装到系统信任的证书列表中。这样生成的证书在本地环境中可以被浏览器信任,避免了常见的安全警告。
开源项目地址:https://github.com/FiloSottile/mkcert
具体怎么安装请参考github官方文档,提供各大平台使用的方式,由于针对有一定经验并且有相关使用场景的运维和开发人员使用,不对简单的安装进行具体保姆级教程。
使用mkcert
直接使用命令生成mkcert生成任何证书,包括localhost、IP地址,127.0.0.1,泛域名证书等。
在此以windows为例:
.\mkcert-v1.4.4-windows-amd64.exe *.lab.dev *.router.com *.dev.com localhost 192.168.1.100
然后会在同目录生成两个文件:_wildcard.lab.dev+4.pem
、_wildcard.lab.dev+4-key.pem
查看根证书路径:本地信任需要安装根证书
.\mkcert-v1.4.4-windows-amd64.exe -CAROOT
nginx配置使用
直接通过nginx配置这个证书即可。
参考配置:
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/ssl/_wildcard.lab.dev+4.pem;
ssl_certificate_key /etc/nginx/ssl/_wildcard.lab.dev+4-key.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
配置完成之后通过https访问还是会提示不安全,需要客户端安装上面所说的根证书之后才能信任。
查看根证书路径,该目录中有两个文件:rootCA-key.pem
和 rootCA.pem
。将 rootCA.pem
复制到 PC 上,并将其后缀改为 .crt
,然后点击安装,选择安装到受信任的根证书目录下。
再次访问则显示安全了。
参考
【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记
商业转载请联系作者获得授权,非商业转载请注明本文出处及文章链接