mkcert是一个简单的零配置工具,由Filippo Valsorda在Go编写,用于制作任何名称的本地可信开发证书,无需任何配置。本文介绍安装及使用mkcert在Linux和macOS中创建本地受信任的SSL证书。
在Ubuntu/Debian系统中安装mkcert 要在任何Ubuntu或Debian系统上安装mkcert,首先要安装certutil依赖项: sudo apt-get update sudo apt install wget libnss3-tools 当前mkcert的新版本是v1.3.0: wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-linux-amd64 下载文件后,使文件可执行并将二进制文件放在/usr/loa/bin下: chmod +x mkcert sudo mv mkcert /usr/local/bin
在CentOS/Fedora系统中安装mkcert 在CentOS和Fedora中安装mkcert类似于Ubuntu/Debian安装,只需要先安装nss-tools工具: sudo yum install nss-tools 安装完成后,下载二进制包,就像安装Ubuntu一样: wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-linux-amd64 下载文件后,使文件可执行并将二进制文件放在/usr/loa/bin下: chmod +x mkcert sudo mv mkcert /usr/local/bin
在Arch Linux系统中安装mkcert 对于Arch Linux,你可以使用上述过程或使用AUR安装mkcert,对于安装,你需要使用AUR助手,参考安装及使用Arch Linux/Manjaro系统中的AUR助手yay一文。 安装yay后,使用以下命令安装mkcert: yay -S --noconfirm --needed go yay -S --noconfirm --needed mkcert
在macOS系统中安装mkcert 对于macOS用户,你可以下载二进制包或从.brew安装mkcert: brew install mkcert brew install nss # if you use Firefox 对于二进制安装: wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-darwin-amd64 下载文件后,使文件可执行并将二进制文件放在/usr/local/bin下: chmod +x mkcert sudo mv mkcert /usr/local/bin
使用mkcert生成本地受信任的SSL证书 mkcert支持以下根存储: macOS系统商店 Windows系统商店 提供的Linux变体:update-ca-trust(Fedora,RHEL,CentOS)或update-ca-certificates(Ubuntu,Debian) Firefox(仅限macOS和Linux) Chrome和Chromium Java(设置JAVA_HOME时) 要获取mkcert的帮助页面,请执行选项--help:
你可以使用以下命令获取CA根目录: $ mkcert -CAROOT /home/jmutai/.local/share/mkcert 你需要首先在系统信任库中安装本地CA: # mkcert -install Created a new local CA at "/home/jmutai/.local/share/mkcert" ? The local CA is now installed in the system trust store! 完成后,可以开始为你的域生成SSL证书,例如,我将生成一个对以下名称有效的新证书: - "mydomain.com" - "*.mydomain.co" - "myapp.net" - "localhost" - "127.0.0.1" - "::1" 输出信息如下:
应该能够查看证书的内容,如下: # cat ./mydomain.com+5.pem
私钥是: ~/.mydomain.com+5-key.pem
测试mkcert证书 现在让我们使用一个简单的Nginx配置文件测试mkcert证书,所用的操作系统是Ubuntu 18.04: sudo apt-get install nginx 创建一个简单的网页: # cat /etc/nginx/conf.d/test.conf server { listen 80; server_name mydomain.com myapp.net; root /var/www/test; } server { listen *:443 ssl http2; root /var/www/test; server_name mydomain.com myapp.net; ssl_certificate /home/jmutai/mydomain.com+5.pem; ssl_certificate_key /home/jmutai/mydomain.com+5-key.pem; } 确保/etc/hosts文件包含已使用域的记录: 127.0.0.1 myapp.net 127.0.0.1 mydomain.com 打开浏览器并使用提供的域名,就可以看到成功的成果了。
相关主题 |