首页/安全/加密与证书速查/自签证书的用途与边界

自签证书的用途与边界

自签证书由自己签发自己,没有公共信任锚,浏览器会报不受信任;适合内网服务、开发调试与设备管理界面,面向公众的站点应使用受信 CA 证书。

加密与证书速查安全更新于 2026-10-13

自签证书的适用边界

自签证书由自己签发自己,链上不存在公共信任锚,因此浏览器会直接报不受信任。它适合内网服务、开发调试、设备管理界面,以及私有 CA 体系下的双向认证。面向公众的站点与开放 API 应当使用受信 CA 签发的证书,否则用户会看到安全警告,大量客户端还会直接拒绝连接。

基本信息

生成openssl req -x509 -newkey rsa:2048 -nodes -days 365
信任方式导入客户端信任库,或按系统策略统一放行
适用范围内网系统、IoT 设备、开发测试、私有 CA 的双向认证
不适用面向公众的站点与开放 API
必备项必须配置 SAN,不能只写 CN
生命周期到期同样需要轮换与重新分发信任

典型使用场景

  • 内网管理界面:为内部系统提供加密通道,由客户端统一导入信任
  • 开发与测试:本地搭起 HTTPS 环境,不必改动业务代码
  • 设备管理:IoT 设备自带证书,按设备指纹分发信任
  • 私有 PKI 建设:先建自签根证书,再为各服务签发体系内证书
  • 临时验证:确认配置生效后,再替换为受信证书上线

生成自签证书(含 SAN)

生成自签证书(含 SAN)
openssl req -x509 -newkey rsa:2048 -nodes -days 365 -keyout tls.key -out tls.crt -subj "/CN=internal.example.com" -addext "subjectAltName=DNS:internal.example.com,IP:10.0.0.10"
# 生成后确认 SAN 与指纹,方便分发时核对
openssl x509 -in tls.crt -noout -ext subjectAltName -fingerprint -sha256

使用边界速查

场景可否用自签说明
内网管理后台可以客户端需导入信任,建议用私有 CA 统一签发
面向公众的站点不可以终端用户会看到警告并可能直接离开
开放 API不可以调用方无法预先信任你的自签根
IoT 设备可以需解决轮换与指纹分发的管理问题
自签证书的轮换与指纹分发要纳入管理:大量设备各自信任不同自签证书,会让运维复杂度快速上升。
逐张自签不如自建私有 CA:用一套根证书签发所有内网服务证书,客户端只需信任一次,续期与替换时也不必逐台重新导入。
自签证书同样必须配 SAN:只写 CN 的证书在现代客户端上会被判为名称不匹配,比预期更早触发校验失败。

易错点

  • 用「继续访问」的习惯掩盖浏览器警告,让用户对公网站的证书告警逐渐麻木
  • 自签证书漏配 SAN,比预期更早触发校验失败
  • 逐张自签且各自导入信任,设备一多就无法维护
  • 自签证书有效期设得过长(如十年),轮换机制被彻底搁置
  • 把自签根证书装到面向公众的入口,掩盖真实的信任链问题

数据来源与参考

  • RFC 5280
  • OpenSSL 官方文档(req -x509)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌