生成

自签名证书生成器

为开发、测试或内网服务生成自签名证书和私钥,不用装任何软件。

浏览器本地运行 私钥在你的浏览器里(WebCrypto)生成和处理,不会离开你的设备,也不会上传到 ssl.sh。

一行一个域名或 IP,CN 会自动加入。中文域名会自动转成 punycode。
组织信息(可选)
2022 年 9 月起公开 CA 不再在证书里写 OU。
两位字母代码,如 CN、US。

DV 证书只验证域名,CA 会忽略这些字段;OV/EV 证书核实后才会写进证书。

最后核实

自签名证书生成器在浏览器里生成自签名 X.509 证书和对应私钥。填主机名,补充其他域名或 IP,选好密钥类型和有效期,点 生成证书,就能得到证书、私钥和等价的 OpenSSL 命令。

怎么用

  1. 通用名称:主机名,比如 dev.example.com 或 localhost。
  2. SAN:一行一个,比如 localhost、127.0.0.1、::1,也可以填内网 IP。客户端只看 SAN,不看 CN。
  3. 选择密钥类型和有效天数(默认 365)。
  4. 需要做测试 CA 时勾选 作为 CA 证书。
  5. 点 生成证书,下载 .crt 和 .key。

等价的 OpenSSL 命令(OpenSSL 1.1.1+):

openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes \
  -keyout dev.key -out dev.crt -days 365 -subj '/CN=dev.example.com' \
  -addext 'subjectAltName=DNS:dev.example.com,DNS:localhost,IP:127.0.0.1' \
  -addext basicConstraints=critical,CA:FALSE -addext extendedKeyUsage=serverAuth

证书里有什么

服务器证书包含 basicConstraints CA:FALSE、keyUsage digitalSignature(RSA 另加 keyEncipherment)、extendedKeyUsage serverAuth、SAN 列表和主体密钥标识,序列号是随机的 128 位数。CA 证书则是 CA:TRUE,带 keyCertSign 和 cRLSign。

适用场景

  • 本地开发和测试环境;
  • 所有客户端都由你控制、可以分发证书的内网服务,比如内网管理后台、NAS、路由器;
  • 搭建双向 TLS(mTLS)测试环境。

对公网提供服务一律用公开 CA 的证书。要转成 Windows 或 Java 用的格式,用 PEM 转 PFX;要查看证书内容,用证书解析工具。

常见问题

为什么浏览器还是提示不安全?

自签名证书没有任何机构背书,在把证书(或签发它的测试 CA)导入操作系统或浏览器的信任库之前,浏览器会显示 NET::ERR_CERT_AUTHORITY_INVALID。

公网网站能用自签名证书吗?

不应该用,每个访客都会看到安全警告。公网网站用 Let's Encrypt 等公开 CA 的免费证书,配合 ACME 自动续期即可。

有效期设多长?

本地开发一般一到两年。公开 CA 的有效期上限不约束你手动信任的证书,但有效期短一些,私钥泄露时的影响也小一些。测试 CA 通常设几年。

“作为 CA 证书”有什么用?

生成一张能给别的证书签名的 CA 证书。把这张 CA 证书导入测试设备一次,以后用它签发的服务器证书都会被信任,不用每张证书单独导入。

资料来源

  1. RFC 5280: X.509 证书
  2. OpenSSL req 命令(-x509)