使用mkcert配置本地https

使用mkcert配置本地https

之前写过两篇给你的网站配置https的文章:

但这两篇文章讲的都是在线上配置,很多时候项目在本地也需要同样的使用https协议(而本地所使用的域名并没有注册,而是直接在hosts文件中指定的),所以在本地我们不能使用以上的方法,而是使用一个叫mkcert的工具来生成证书。

安装mkcert

Windows安装mkcert

如果你知道Chocolatey,你可以用choco来安装:

choco install mkcert

如果你没用过choco,那直接在这里下载最新的Windows版mkcert:
-w1229
下载了就可以直接用,不需要安装(用法在下边)。

macOS安装mkcert

其中nss是为了保证火狐浏览器能识别证书

brew install mkcert nss

Linux安装mkcert

Linux上要先安装nss(Network Security Services):
Ubuntu/Debian上安装nss:

sudo apt install libnss3-tools

RHEL/CentOS上安装nss:

sudo yum install nss-tools

Manjaro/Arch Linux上安装nss:

sudo pacman -S nss

SUSE Linux上安装nss:

sudo zypper install mozilla-nss-tools

安装nss后,再安装mkcert,常规方法无法安装,比如Ubuntu你没法用sudo apt install mkcert来安装。

方法一:可以用Linuxbrew来安装(Linux安装和使用LinuxBrew

brew install mkcert

方法二:直接在这里下载Linux的可执行文件,然后再给它添加可执行权限:

sudo +x ./mkcert-v1.4.1-linux-amd64

注意事项

下边用到的mkcert命令,如果你是直接下载的,名字并不是mkcert,比如在Windows中我下载的就是mkcert-v1.4.1-windows-amd64.exe,建议打开cmd窗口后,直接把下载的mkcert拖到窗口中(如果拖到窗口中也不显示,那就再点一下鼠标右键应该就能显示)。

在Linux中也一样,不是直接叫mkcert,也是把它拖到命令窗口中,再参考后面的命令使用。

设置mkcert为本地CA

前面已经我们已经安装好了mkcert(其实就是把mkcert的可执行文件下载下来),现在开始使用。

CA是Certificate Authority的缩写,即证书颁发机构,我们要配置让浏览器信任mkcert颁发的证书。

设置命令:

mkcert -install

生成HTTPS证书

注意:下边的命令生成的证书都是在当前目录下

生成证书

www.example.com生成证书:

mkcert www.example.com

以上命令会在当前目录下生成:

www.example.com.pem
www.example.com-key.pem

生成通配符证书*.example.com

mkcert "*.example.com"

以上命令会在当前目录下生成:

_wildcard.example.com.pem
_wildcard.example.com-key.pem

给本地环回地址(127.0.0.1)生成证书:

mkcert 127.0.0.1

以上命令会在当前目录下生成:

127.0.0.1.pem
127.0.0.1-key.pem

其实以上三个可以写在一起的:

mkcert www.example.com *.example.com 127.0.0.1

生成证书后,如何使用可查看这里,其实就是在http服务器(如nginx、apache等)里使用语句指定证书的路径,再把端口换成443即可,重启nginx/apache,再重启浏览器,即可生效。

上机操作

Mac和Linux用户相对比较熟悉命令,我就不录屏操作了,按前面说的方法,命令去做就行,这里有一个Windows上使用的gif(点击图片可放大):
在Windows中使用mkcert设置HTTPS证书
注意:如果拖动mkcert到cmd中后不显示路径,点击一下鼠标就会显示。


事实上,你把这证书用在远程服务器也是可以的,只不过这样的话,只有生成证书的那台电脑能识别,其它电脑/手机都打不开。

打赏
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

使用mkcert配置本地https