Apache配置SSL证书后,Firefox提示证书对192.168.0.44无效但证书实际包含该IP的问题解决
Apache配置SSL证书后,Firefox提示证书对192.168.0.44无效但证书实际包含该IP的问题解决
嘿,这个问题我遇见过!你看到的那个看似矛盾的错误提示(说证书对192.168.0.44无效,但又说证书只对192.168.0.44有效),根源其实是你证书里的**Subject Alternative Name(SAN)**配置犯了个小错误——你把IP地址当成DNS域名来声明了,Firefox根本不认这个类型的SAN条目。
问题原因
在你的entity.cnf里,你把IP地址放在了DNS.1字段下:
[alt_names] DNS.1 = 192.168.0.44
但DNS.*字段是用来声明域名的,IP地址需要用IP.*字段来声明。Firefox会把DNS.1里的IP字符串当成一个普通的DNS域名去匹配,自然和你访问的IP地址192.168.0.44不匹配,所以才会弹出那个奇怪的错误。
解决步骤
修改证书配置文件
打开/etc/certs/test/entity.cnf,把[alt_names]部分改成:[alt_names] IP.1 = 192.168.0.44重新生成证书
先删除旧的相关证书文件,避免缓存影响:rm /etc/certs/test/entity.csr /etc/certs/test/entity.crt /etc/certs/test/ca.serial然后重新运行证书生成脚本:
cd /etc/certs/test && ./make-certs.sh重启Apache服务
让Apache加载新的证书:systemctl restart apache2验证证书配置(可选)
用openssl命令检查证书的SAN条目是否正确:openssl x509 -in /etc/certs/test/entity.crt -noout -text | grep -A 3 "Subject Alternative Name"如果输出里显示
IP Address:192.168.0.44,就说明配置正确了。
补充说明
- 你之前导入到Firefox的CA证书不需要重新导入,只要服务器端的证书更新并重启Apache就可以了。
- 之前用域名
hello.test.com能成功,是因为你用DNS.1声明域名是正确的,Firefox可以正常匹配域名访问请求。
备注:内容来源于stack exchange,提问作者learningtech
相关产品推荐
相关产品推荐

