私有 CA 服务端证书生成器

签发一张由 CA 背书的服务端证书:可以现场生成一个新的私有根 CA,也可以使用你已有的 CA 签发。CA 证书只需安装一次,它签发的每张证书都会被信任。全部在浏览器中完成,不会上传到任何服务器。

私有 CA 服务端证书 可程序生成或上传自有 CA RSA 2048 · SAN · PEM

由 CA 背书的服务端证书:可以现场生成一个新的私有 CA,也可以使用你已有的 CA 签发。

私有根 CA 不受浏览器有效期上限约束,通常设为 10 年(3650 天)。名称请使用英文(ASCII)字符。


多个条目用逗号或空格分隔,通用名称会自动加入。支持域名、通配符与 IP 地址。

ca.crt 根 CA 证书 —— 请安装到你的设备上
ca.key 根 CA 私钥 —— 请离线保存,切勿放在 Web 服务器上
server.key 私钥(PEM)——切勿外泄
server.crt 证书(PEM),由上方 CA 签发

如何把 CA 证书安装到你的电脑

把 ca.crt 装入操作系统信任库后,该 CA 签发的每一张证书都不会再出现浏览器告警。

图形界面方式

  1. 把 ca.crt 复制到这台 Windows 电脑。
  2. 双击 ca.crt,选择「安装证书…」。
  3. 选择「本地计算机」,点击「下一步」(确认 UAC 提权提示)。
  4. 选择「将所有证书放入下列存储」→「浏览…」
  5. 选择「受信任的根证书颁发机构」,然后「下一步」→「完成」。
  6. 重启 Chrome 或 Edge —— 它们读取 Windows 证书存储。Firefox 需要按下文单独导入。

另一种方式:按 Win + R,运行 mmc,然后「文件」→「添加/删除管理单元」→「证书」→「计算机账户」→「本地计算机」,再导入到「受信任的根证书颁发机构 → 证书」。

命令行(管理员 PowerShell 或 CMD)

certutil -addstore -f "ROOT" ca.crt

rem 确认是否已写入存储
certutil -store ROOT

rem 以后需要删除时(使用 CA 的通用名称)
certutil -delstore ROOT "My Root CA"

在 Nginx 中部署服务端证书

sudo cp server.crt /etc/nginx/ssl/server.crt
sudo cp server.key /etc/nginx/ssl/server.key
sudo chmod 600 /etc/nginx/ssl/server.key
server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_session_cache shared:SSL:10m;
}
sudo nginx -t
sudo systemctl reload nginx

Nginx 的 ssl_certificate 只读取单个文件。浏览器已经信任该 CA,仅使用叶子证书即可,不需要额外的证书链文件。

更多工具:自签名证书生成器 · 双向 TLS 证书生成器 · CSR 生成器 · 证书解码器