wss 连接中忽略的自签名证书 SAN

Posted

技术标签:

【中文标题】wss 连接中忽略的自签名证书 SAN【英文标题】:self-signed certificate SANs ignored in wss connection 【发布时间】:2021-11-29 16:16:09 【问题描述】:

可以通过 IP 和 DNS 访问 Web 服务。 使用以下命令创建包含 DNS 作为公用名以及 DNS 和 IP 作为 subjectAlternativeName 的自签名证书

openssl req \
  -x509 \
  -nodes \
  -subj "/O=www.example.com/CN=$domain_name" \
  -addext "subjectAltName=DNS:$domain_name,IP:$ip_addr" \
  -newkey rsa:4096 \
  -keyout /path/to/key.pem \
  -out /path/to/cert.pem \
  -addext "extendedKeyUsage = serverAuth" \
  -days 365

通过IP地址打开网页并接受浏览器警告有效。 该页面向 DNS 发起新的 WSS 连接,但由于证书无效而失败。

我应该如何设置我的证书,以便浏览器在启动 wss 连接时同时信任 IP 和域名

【问题讨论】:

您是否检查了您的证书以确保实际添加了 SAN? openssl x509 -in /path/to/cert.pem -noout -text @AndrewHenle 是的,两者都在场 【参考方案1】:

在接受有关不受信任的证书的安全警告时添加安全例外不是针对证书执行的,而是针对来自 URL 的证书与域和端口的组合。由于通过 IP 地址访问 html,但通过主机名访问 websocket,为第一个添加的异常不会覆盖第二个。

最好的办法不是一开始就接受安全警告,而是在浏览器中添加受信任的证书。在这种情况下,证书中给出的所有 IP 和域都将信任该证书。

【讨论】:

以上是关于wss 连接中忽略的自签名证书 SAN的主要内容,如果未能解决你的问题,请参考以下文章

如何为本地托管的 wss:// 服务器创建自签名证书

Jetty Websocket 连接 - 忽略自签名证书

Firefox 断开自签名证书的 websockets 连接

sh 自签名SAN证书

sh 使用“localhost”SAN生成自签名证书

Ubuntu apache创建有效的自签名证书ssl https(删除连接不安全)[重复]