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

标签 ssl websocket

可以通过 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 和域名

最佳答案

在接受有关不受信任的证书的安全警告时添加安全异常不是针对证书进行的,而是针对来自 URL 的证书与域和端口的组合。由于 HTML 是通过 IP 地址访问的,但 websocket 通过主机名访问,为第一个添加的异常不会涵盖第二个。
最好的方法是首先不接受安全警告,而是在浏览器中添加受信任的证书。在这种情况下,证书中给出的所有 IP 和域都将信任该证书。

关于ssl - wss 连接中忽略的自签名证书 SAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70157810/

相关文章:

nginx - 如何修复此 NGINX 502 Bad Gateway 错误?

android - 安装 Scarlet 时重复依赖项

通过 https 调用 PHP Soap

具有不同用户证书的 Java Rest 调用

angular - 如何解码 x509 证书以获取到期日期?

javascript - 为什么 WebSocket.onmessage 事件不会触发?

node.js - 运行使用 Socket.io 的多个服务的最佳方式是什么

jquery - 如何启动并运行简单的 XSocket.Net 示例

php - cURL 中的 SSL 证书错误

android - 针对不安全的 TrustManager 的 Google Play 安全警报