You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

自签名证书无Subject Alternative Name扩展问题及操作咨询

解决自签名证书缺少Subject Alternative Name扩展的问题

你生成证书时的命令存在几个关键小问题,导致证书没能正确包含SAN(Subject Alternative Name)扩展,我帮你一步步修正:

问题分析你的命令

你的命令里有两个核心错误:

  • -reqexts Canada 指定了扩展段名为Canada,但你在自定义配置里写的是[Wellington],两者不匹配,OpenSSL无法加载到对应的SAN配置
  • 你把IP地址用DNS:前缀标记了,对于IP地址类型的SAN项,规范要求用IP:前缀,而非DNS:

正确的证书生成命令

用这个命令重新生成证书,我已经修正了上述问题:

openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -pubkey -days 365 \
  -subj "/C=NZ/ST=LH/O=SoN, Inc./CN=10.16.1.96" \
  -reqexts SAN \
  -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=IP:10.16.1.96,DNS:raspberrypi.local"))

这里的关键调整:

  • -reqexts的值改为SAN,和自定义配置段[SAN]保持匹配
  • IP地址用IP:前缀,如果需要添加域名(比如树莓派的本地域名),再用DNS:前缀补充

验证证书是否包含SAN扩展

生成证书后,用下面的命令检查证书内容,确认SAN是否正确添加:

openssl x509 -in cert.pem -text -noout | grep -A 3 "Subject Alternative Name"

如果输出类似下面的内容,说明SAN已经成功包含在证书中:

Subject Alternative Name: 
    IP Address:10.16.1.96
    DNS:raspberrypi.local

额外注意事项

  • 替换证书到树莓派的Web服务器后,记得重启服务器让配置生效
  • 自签名证书在浏览器中仍会提示“不安全”,这是正常现象,你可以手动将cert.pem导入浏览器的信任列表来消除这个提示

内容的提问来源于stack exchange,提问作者Bali Vinayak

火山引擎 最新活动