mkcert是一个用Go语言写的本地HTTPS证书生成工具。目前只支持MacOS和Linux系统,Windows还得在等等。写这篇日志时当前版本为0.9.0。
mkcert v1 is almost ready. This is a release candidate for testing on Linux
不过1.0很快就要来了,下面简单介绍下此工具的使用。
首先从Chrome63开始Google开始禁用所有.app和.dev域名的非HTTPS访问。所以以前做开发最常用的homestead.app被提示不安全而无法访问。所以借由此机会演示一下如何可是使用https://homestead.app
来访问我的本地web服务。
安装
根据官方文档以及我本地是MacOS所以我执行了下面的命令安装
brew install --HEAD https://github.com/FiloSottile/mkcert/raw/master/HomebrewFormula/mkcert.rb
如果你的Mac上还没有安装brew这个软件包管理器,强烈建议你安装一下。
生成本地证书
安装成功后我们就可以执行mkcert -install
命令来生成本地证书。这个证书同时会存放到你的本地钥匙串中。
然后我们可以打开MacOS上的钥匙串看到多了一个mkcert development CA
的证书记录
接下来继续生成对应域名的https证书。可以看到文档里说的很清楚。可以一次生成一个也可以一次生成多个,甚至可以生成泛域名证书。可以说还是很强大的。下面我生成一个针对homestead.app
这个域名的单域名证书。
首先我是在~/cert
目录下执行的生成命令,所以此域名证书就会在当前目录下生成。可以看到生成了一个密钥对,这个就是稍后我们要配置到Nginx里的。
配置证书到Nginx
首先启动一台nginx服务器,然后将上面生成的2个证书文件拷贝到nginx所有的服务器上(至于你怎么整到服务器上面自己想办法)。
我这里将文件放到了/etc/nginx/ssl/目录中。然后打开你的站点的nginx配置文件,一般位于/etc/nginx/conf.d目录下,找到对应站点编辑。
在server{}块中加入
ssl_certificate /etc/nginx/ssl/homestead.app.pem;
ssl_certificate_key /etc/nginx/ssl/homestead.app-key.pem;
保存,重启nginx服务。
结果
如果是使用Windows或者想不通过过这种方式可以参考这篇文章,这里面有Windows的配置。同样可以达到效果其本质都是一样的。