mkcert简介
mkcert是一个使用go语言编写的生成本地自签证书的小程序,具有跨平台,使用简单,支持多域名,自动信任CA等一系列方便的特性可供本地开发时快速创建https环境使用。
安装方式也非常简单,由于go语言的静态编译和跨平台的特性,官方提供各平台预编译的版本,直接下载到本地,给可执行权限(Linux/Unix需要)就可以了。下载地址:
项目地址:[https://github.com/FiloSottile/mkcert](https://github.com/FiloSottile/mkcert)
安装mkcert
macOS
1. Homebrew
brew install mkcert
brew install nss # if you use Firefox
2. MacPorts.
sudo port selfupdate
sudo port install mkcert
sudo port install nss # if you use Firefox
Linux
首先安装 certutil
.
sudo apt install libnss3-tools
-or-
sudo yum install nss-tools
-or-
sudo pacman -S nss
-or-
sudo zypper install mozilla-nss-tools
然后安装 mkcert
brew install mkcert
或者自己编译 (requires Go 1.13+)
git clone https://github.com/FiloSottile/mkcert && cd mkcert
go build -ldflags "-X main.Version=$(git describe --tags)"
也可以下载编译好的包 the pre-built binaries.
Arch Linux , [mkcert](https://www.archlinux.org/packages/community/x86_64/mkcert/)
sudo pacman -Syu mkcert
Windows
choco install mkcert
- Scoop
scoop bucket add extras
scoop install mkcert
也可以下载编译好的包 the pre-built binaries
生成证书
需要首先在系统信任库中安装本地CA.
$ mkcert -install ~
Using the local CA at "/home/angus/.local/share/mkcert" ✨
The local CA is already installed in the system trust store! 👍
The local CA is already installed in the Firefox and/or Chrome/Chromium trust store! 👍
完成后,您可以开始为您的域生成SSL证书。例如,我将生成一个对以下名称有效的新证书:
$ mkcert myapp.net
mkcert localhost ~/.ssl
Using the local CA at "/home/angus/.local/share/mkcert" ✨
Created a new certificate valid for the following names 📜
- "myapp.net"
The certificate is at "./myapp.net.pem" and the key at "./myapp.net-key.pem" ✅
测试mkcert证书
现在让我们使用一个简单的Nginx配置文件测试mkcert证书。
创建一个简单的网页
# cat /etc/nginx/conf.d/test.conf
server {
listen 80;
server_name localhost;
root /var/www/test;
}
server {
listen *:443 ssl http2;
root /var/www/test;
server_name localhost;
ssl_certificate /home/angus/localhost.pem;
ssl_certificate_key /home/angus/localhost-key.pem;
}
确保/etc/hosts
文件包含已使用域的记录。
127.0.0.1 myapp.net
打开浏览器并使用提供的域名,你应该得到一个绿色栏。