使用 mkcert 配置 nginx SSL认证(双向)

1 安装 mkcert

mkcert 有发布到 Homebrew, MacPorts 等,使用 Homebrew 安装:

1
brew install mkcert

其他系统安装请自行搜索。

2. 使用 mkcert

  • 安装 mkcert 根证书

首先需要先将mkcert的根证书安装到电脑中, 执行:

1
mkcert -install
  • 生成服务器证书
1
> mkcert "*.mydomain.com" "*.yourdomain.com" ::1

// 生成 pem 格式证书如下:
// _wildcard.mydomain.com+2-key.pem _wildcard.mydomain.com+2.pem
  • 生成客户端证书
1
> mkcert -pkcs12 -client "*.mydomain.com" "*.yourdomain.com" 

// 生成p12格式客户端证书如下:
// _wildcard.mydomain.com+1-client.p12
// win用户可以直接导入,默认密码为:“changeit”

3. 配置 nginx 使用证书:

1
ssl on;
ssl_prefer_server_ciphers on;
ssl_certificate "./_wildcard.mydomain.com+2.pem";
ssl_certificate_key "./_wildcard.mydomain.com+2-key.pem";

ssl_trusted_certificate "./mkcert-CA.pem"; // mkcert 根证书
ssl_client_certificate "./mkcert-CA.pem";

ssl_verify_client on; // 要求客户端证书认证
ssl_verify_depth 6; 

ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;