私有 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 生成器 · 证书解码器