生成
自签名证书生成器
为开发、测试或内网服务生成自签名证书和私钥,不用装任何软件。
浏览器本地运行 私钥在你的浏览器里(WebCrypto)生成和处理,不会离开你的设备,也不会上传到 ssl.sh。
自签名证书生成器在浏览器里生成自签名 X.509 证书和对应私钥。填主机名,补充其他域名或 IP,选好密钥类型和有效期,点 生成证书,就能得到证书、私钥和等价的 OpenSSL 命令。
怎么用
- 通用名称:主机名,比如
dev.example.com或localhost。 - SAN:一行一个,比如
localhost、127.0.0.1、::1,也可以填内网 IP。客户端只看 SAN,不看 CN。 - 选择密钥类型和有效天数(默认 365)。
- 需要做测试 CA 时勾选 作为 CA 证书。
- 点 生成证书,下载
.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 证书导入测试设备一次,以后用它签发的服务器证书都会被信任,不用每张证书单独导入。