自签名证书与 CSR 生成器

创建自签名 X.509 TLS 证书、CA 证书或 CSR,支持 SAN、2048–4096 位 RSA 密钥和自定义有效期。输出 PEM,密钥不会离开你的设备。

要生成的内容

通常是主机名,例如 localhost 或 www.example.com。

额外的 DNS 名称和 IP 地址,用逗号或换行分隔。浏览器检查的是这些名称,而不是 CN。

RSA 密钥由浏览器中的 Web Crypto 生成,永远不会离开你的设备。

什么是 SSL 证书生成器?

无需 OpenSSL 命令行,就能生成 TLS 所需的文件:用于本地开发或内部服务的 自签名 TLS 证书、用于签发你自己证书的 自签名 CA 证书,或发送给证书颁发机构的 证书签名请求(CSR)。你会得到 PEM 格式的证书或 CSR 以及 RSA 私钥,另外还有 SHA-256 指纹。

如何使用 SSL 证书生成器

  1. 选择 要生成的内容。
  2. 输入 通用名称(CN) 和 主题备用名称(SAN)(DNS 名称和 IP),以及可选的组织和所在地字段。
  3. 选择 密钥长度,对于证书还要设置 有效期(天)。
  4. 点击 生成,然后下载证书(.crt)或 CSR(.csr)以及私钥(.key)。

示例

输入
Self-signed TLS certificate, CN localhost, SANs 127.0.0.1 and ::1, RSA 2048, 365 days
输出
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----
Subject: CN=localhost
SAN: DNS:localhost, IP:127.0.0.1, IP:::1

何时使用 SSL 证书生成器

自签名证书适合 localhost、开发容器、内网服务、物联网原型和 TLS 配置测试。在你信任该证书(或你的 CA)之前,浏览器会显示警告。对于公共网站,请使用 Let's Encrypt 这样的 CA:可以在这里创建 CSR,或让你的服务器或 ACME 客户端生成。

SSL 证书生成器 的工作原理

RSA 密钥对由浏览器的 Web Crypto API(RSASSA-PKCS1-v1_5,公钥指数 65537)生成,并导入 node-forge。对于证书,forge 会构建 X.509 v3 证书:随机的 128 位正序列号、从一分钟前开始并持续所选天数的有效期、相同的主体和颁发者(自签名),以及这些扩展:basicConstraints(CA 为 true/false,关键)、keyUsage(服务器为 digitalSignature + keyEncipherment,CA 为 keyCertSign + cRLSign)、extendedKeyUsage 的 serverAuth/clientAuth、subjectKeyIdentifier 和 subjectAltName。当 CN 是主机名或 IP 时,会自动加入 SAN。证书使用 SHA-256 签名。CSR 是 PKCS#10 请求,SAN 放在 extensionRequest 属性中。密钥以 PKCS#8 PEM 导出。

常见用例

  • 在 localhost 或开发服务器上启用 HTTPS
  • 为内部网络或实验环境创建私有 CA
  • 为商业证书生成 CSR
  • 在 Nginx、Apache 或负载均衡器中测试 TLS 设置

安全提示

任何拥有私钥的人都可以冒充你的服务器。请保管好 .key 文件,不要提交到 Git,也不要在生产环境中重复使用开发用的密钥。

常见问题

为什么浏览器提示证书不受信任?

自签名证书不是由你的系统所信任的 CA 签发的。把它(或签发它的 CA)导入操作系统或浏览器的信任库,就能在你自己的机器上消除警告。

为什么需要主题备用名称?

现代浏览器会忽略通用名称,只会把主机名与 SAN 列表匹配,所以你使用的每个主机名和 IP 都必须列在其中。

私钥安全吗?

它在你的浏览器中生成,不会发送到任何地方。请下载它,以受限权限存放,并且绝不要分享。

应该选择哪种密钥长度?

RSA 2048 是常见的最低要求,兼容性很广;3072 或 4096 提供更大的余量,代价是握手更慢。

探索更多分类