准备睡觉时,突然微信群里炸了……
“哥们,救命!客户明天要看演示,结果本地HTTPS又配不通!”
“SSL证书又过期了,现在浏览器直接拒绝访问。。。”
“手动配证书配了3个小时,还是报错,想死的心都有了。”
看到这些消息,我想起了自己刚入行时的噩梦。。。
那些年,我们被HTTPS支配的恐惧
说真的,谁没被本地HTTPS配置折磨过?
每次新项目,都要经历这个流程:
第一步:百度搜“如何生成SSL证书”
第二步:复制粘贴一堆命令,半懂不懂
第三步:报错,再搜,再试。。。
第四步:折腾到半夜,最后放弃用HTTP
最崩溃的是什么?
好不容易配通了,过两天又不行了。
证书过期、路径不对、信任出问题。。。
每个坑都踩一遍,每次都想砸电脑。
直到我遇到了这个55.1K Star的神器
mkcert。
第一次用的时候,我以为是假的。
怎么可能这么简单?
mkcert -installmkcert localhost 127.0.0.1
两行命令,搞定。
不开玩笑,就这么简单。
到底有多简单?我给你演示一遍
安装:
macOS直接brew装:
brew install mkcertbrew install nss # if you use Firefox
想要HTTPS?
mkcert example.com localhost 127.0.0.1
回车。
完事。
你会得到两个文件:
example。com+2.pem (证书)
example。com+2-key。pem (私钥)
这玩意为什么这么牛?
第一,真的零配置
以前配SSL证书像做化学实验。。。
各种参数、各种路径、各种权限。
现在?装了就能用。
第二,系统级信任
最烦的是什么?
证书生成了,浏览器不认。
要么显示“不安全”,要么直接拒绝访问。
mkcert生成的证书,系统直接信任。
绿锁标志,秒出现。
第三,支持一切你能想到的
localhost?支持。
127.0.0.1?支持。
自定义域名?支持。
甚至通配符域名都支持:
mkcert “*.example.com”
高级玩法,让你更6
配合Nginx:
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/example.com+1.pem; ssl_certificate_key /path/to/example.com+1-key.pem; # 你的其他配置...}
配合Docker:
把证书挂载进容器,一样用。
配合各种框架:
Express、Koa、Spring Boot。。。
都能无缝对接。
为什么55.1K个开发者都在用?
因为它解决了一个所有人都有的痛点。
不管你是:
前端工程师(需要测试HTTPS接口)
后端开发者(需要配置SSL服务)
全栈程序员(两边都要搞定)
DevOps工程师(要给团队配环境)
你都绕不开本地HTTPS这个坑。
mkcert就像一把万能钥匙。。。
一键开锁,告别噩梦。
最后说两句
有人可能会问:生产环境能用吗?
不能。
这玩意只适合本地开发。
生产环境还是老老实实用Let's Encrypt或者买证书。
但是。。。
对于本地开发来说,这就是神器。
简单、可靠、省时间。
省下来的时间,够你多写几个bug了。
不对,多写几个feature了。。。
如果你还在为本地HTTPS配置头疼。。。
如果你还在手动生成SSL证书。。。
如果你还在被浏览器的“不安全”警告困扰。。。
试试mkcert吧。
地址:https://github.com/FiloSottile/mkcert
出处:见配图右下角