windows系统,如何利用mkcert做一个自签名的证书?
发布于 作者:苏南大叔 来源:程序如此灵动~
自从看了elasticsearch
给本地localhost
做了个https
自签名证书后,苏南大叔算是开了眼界了不是?而且,elastic search
这个证书,对于本地测试来说,它还有个不大不小的毛病。那就是里面把随时可变的ip
地址给写进去了,对于苏南大叔仅仅在本地使用localhost
测试来说,不能不说是个bug
...
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,mkcert@1.4.4
。通过mkcert
命令,可以做一个自签名的localhost
证书,就可以访问https://localhost/
了,这是个奇怪的体验。
途径一,安装mkcert
本文所使用的这个工具,叫做mkcert
。用来做网站自签名证书,非常简单容易,比以前的openssl
创建证书要简单的多。
官方网站如下:
途径二,通过choco下载
如果本地有安装choco
下载工具的话,也可以使用choco
下载mkcert
,非常容易。
命令如下:
choco install mkcert
安装完位置是:环境变量里面的ChocolateyInstall
设置位置,并且确认对应的目录在path
环境变量下面。
参考文章:
生成证书
收集好要生成证书的域名以及ip
等,注意没有端口号。执行如下命令:
mkcert domain1 [domain2 [...]]
例如:
mkcert test "*.test" a.test localhost 127.0.0.1 ::1
这里就没有写那个容易发生变化的192.168.*.*
。
这个时候就会生成两个文件,一个叫cert.pem
(公钥),另外一个叫做cert-key.pem
(私钥),证书有效期两年。
使用证书
自签名的证书,要在服务器端进行配置,也需要在客户端进行配置。证书机构颁发的证书,只需要在服务器端进行配置就行了。
1 在服务器端进行配置的部分,这里就不说了。因为不同的服务器端软件环境,配置的方法也不同。
2 而客户端所需要做的就是:信任证书。
2.1 如果客户端恰好就是本机的话,那么可以直接执行:
mkcert -install
没错,参数没写错。就是一个横杠加install
....
2.2 如果客户端不是本机的话,修改cert.pem
文件后缀为.crt
,然后在客户机那边双击就可以安装。唯一需要注意的是:要选择“受信任的根证书颁发机构”。
结语
在服务器端使用这个证书,就是把http
升级为https
,ws
也升级为wss
。不过,根据服务器端情况的不同,配置方案就太多了。后续文章再做补充。


