You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Firefox在OpenWRT LUCI场景下遇自签名通配符证书报SSL_ERROR_BAD_CERT_DOMAIN?

解决Firefox 58.0.2访问OpenWRT LUCI时的SSL_ERROR_BAD_CERT_DOMAIN错误

我之前帮朋友排查过几乎一模一样的问题,Firefox 58这类老版本对通配符SSL证书的校验规则确实比Chrome、Edge要严格不少,哪怕CA已经被全局信任也会出问题。咱们一步步来排查解决:

1. 检查证书的Subject Alternative Name(SAN)字段

这是最常见的原因:Firefox在较老版本中,强制要求通配符证书必须包含SAN字段,哪怕你在Common Name(CN)里填了*.your-router-domain也不行。很多人生成证书时只设置了CN,漏掉了SAN,就会触发这个错误。

你可以用openssl命令验证证书里有没有正确的SAN:

openssl x509 -in /path/to/your/certificate.crt -text -noout | grep -A 3 "Subject Alternative Name"

如果输出里没有DNS:*.your-router-domain(比如DNS:*.router.local),说明证书不符合Firefox的要求,需要重新生成。

2. 确认域名层级是否符合Firefox的通配符规则

Firefox不允许通配符跨多级域名匹配:

  • 比如你的证书是*.router.local,它只能匹配一级子域名(比如luci.router.local)
  • 不能匹配多级子域名(比如admin.luci.router.local)

检查你访问LUCI时用的域名,是不是超出了通配符的匹配范围。如果是多级域名,要么修改访问域名,要么生成包含该多级域名的证书(或者添加到SAN里)。

3. 清理Firefox的旧证书例外

有时候哪怕CA已经被信任,Firefox之前可能保存过该域名的错误证书例外,导致冲突。你可以这么操作:

  • 打开Firefox,输入about:preferences#privacy进入隐私设置
  • 找到「证书」板块,点击「查看证书」
  • 切换到「服务器」标签,找到和你的路由器域名相关的条目,全部删除
  • 重启Firefox后再尝试访问

4. 重新生成符合规范的通配符证书

如果上面的检查都没问题,建议重新生成一份符合Firefox要求的证书。这里给你一套完整的openssl命令示例(替换成你的域名):

# 1. 生成CA根证书(如果还没生成的话)
openssl req -new -x509 -days 3650 -keyout ca.key -out ca.crt -subj "/CN=My Router Root CA"

# 2. 生成路由器证书的私钥和请求文件
openssl req -new -keyout router.key -out router.csr -subj "/CN=*.router.local"

# 3. 创建扩展配置文件,添加SAN字段(关键)
echo "subjectAltName = DNS:*.router.local, DNS:router.local" > extfile.cnf

# 4. 用CA根证书签署路由器证书
openssl x509 -req -in router.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out router.crt -days 3650 -extfile extfile.cnf

生成完成后,把router.crt和router.key替换OpenWRT uHTTPd配置里的证书路径,重启uHTTPd服务:

/etc/init.d/uhttpd restart

5. 验证新证书

再次用openssl查看新证书的SAN字段,确认已经包含正确的DNS条目,然后重新导入CA证书到所有浏览器(如果之前的CA证书没变可以跳过),再用Firefox访问LUCI应该就能正常了。


内容的提问来源于stack exchange,提问作者Michael Uray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:14:37