暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mkcert,本地 HTTPS 测试 So Easy!

红牛编程 2021-08-16
1827

mkcert

Github:https://github.com/FiloSottile/mkcert。

初见

mkcert 是用于创建本地信任证书的简单工具。它是免配的。

我们在开发环境使用 HTTPS ,SSL 时,证书的处理总是很麻烦。mkcert 这个小工具可以帮我们快速的生成用于本地测试的证书和密钥。非常方便。

mkcert 是 Google 的一位密码学工程师,使用 Go 编写的。

快速使用

安装好 mkcert 后,仅需两步,即可得到 SSL 证书。

  1. 安装本地 CA,mkcert -install

  2. 生成站点证书,mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1

操作如下:

 1$ mkcert -install
2Created a new local CA 💥
3The local CA is now installed in the system trust store! ⚡️
4The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊
5
6$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
7
8Created a new certificate valid for the following names 📜
9 - "example.com"
10 - "*.example.com"
11 - "example.test"
12 - "localhost"
13 - "127.0.0.1"
14 - "::1"
15
16The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅

以上示例来自于 https://github.com/FiloSottile/mkcert。

生成的证书文件在 ./
下,一个证书文件和一个密钥文件。

当然这有个前提是先安装好 mkcert 命令。

安装 mkcert

推荐的安装方案如下,详细的安装方案,请参考 FiloSottile/mkcert。

Linux

  • 首先安装 certutil

  • 然后安装 mkcert,建议下载预编译好的二进制程序

首先安装 certutil

1sudo apt install libnss3-tools
2    -or-
3sudo yum install nss-tools
4    -or-
5sudo pacman -S nss
6    -or-
7sudo zypper install mozilla-nss-tools

其次安装 mkcert:

二进制程序下载位置,选择合适的版。例如:

1sudo wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64

下载后,通常需要改名或、放在 $PATH 路径中,并赋予可执行权限。例如:

1sudo chmod u+x mkcert-v1.4.3-linux-amd64
2sudo mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert

至此,mkcert 安装完毕,可以快速获取本地 CA 和证书了,参考快速使用即可。

Windows

推荐使用预编译的二进制程序,二进制程序下载位置。执行时,若权限不足,请使用管理员来运行。

macOS

推荐使用 Homebrew

1brew install mkcert
2brew install nss # if you use Firefox

使用证书

有了证书后,就可以使用该证书和 CA 了。

例如:使用 Nginx 搭建 HTTPS 服务器。

 1server {
2    listen       443 ssl http2;
3    listen  [::]:443 ssl http2;
4
5    #ssl证书地址
6    ssl_certificate     /localhost+2.pem;  # pem文件的路径
7    ssl_certificate_key  /localhost+2-key.pem; # key文件的路径
8
9    # ssl验证相关配置
10    ssl_session_timeout  5m;    #缓存有效期
11    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密算法
12    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #安全链接可选的加密协议
13    ssl_prefer_server_ciphers on;   #使用服务器端的首选算法
14
15    # 其他配置项略
16}


文章转载自红牛编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论