【发布时间】:2020-09-21 18:51:40
【问题描述】:
我在使用自签名 SSL 证书时遇到了一个有点令人困惑的问题,Windows 认为该证书是有效的,但没有现代浏览器会接受。
证书存在于系统证书存储区(通过 MMC 中的证书管理单元访问)、个人和受信任的根证书颁发机构文件夹中,并标记为有效。
根据实用程序SSL Certificate Verifier,证书和证书链是有效的。
这是它的输出:
**************************************************************************
Processing 'localhost'
**************************************************************************
Scan started: 21-09-2020 13:43:33
Generating connection string...
Connection string is: https://localhost:14006/
Entering certificate validation callback function...
Server returned 1 certificates.
Entering server certificate chain validation function...
Leaf certificate issued to: E=REDACTED, CN=localhost, O=localhost, L=New York, S=NY, C=US
Found Subject Alternative Names extension in the certificate.
Fetching SAN values:
DNS Name=localhost
DNS Name=127.0.0.1
DNS Name=::1
IP Address=0000:0000:0000:0000:0000:0000:0000:0001
IP Address=127.0.0.1
Certificate chain successfully passed all checks.
Finished!
Scan ended: 21-09-2020 13:43:33
如果我尝试使用 Internet Explorer 或 curl 访问服务,我会从服务中得到预期的 200 结果。
但是,如果我尝试使用 Edge、Chrome、Opera 或 Firefox 访问该服务,我会收到 ERR_CONNECTION_RESET。在将证书添加到 Firefox 的证书存储区之前,我得到了 PR_CONNECT_RESET_ERROR,但现在它也抛出了 ERR_CONNECTION_RESET。
我的系统上没有激活的代理或 VPN 或任何其他会干扰 Windows 网络的东西。我完全不知所措。这里到底发生了什么,我该如何解决?
【问题讨论】:
-
连接重置由服务器完成,而证书检查由客户端完成。因此,您的问题与证书是否有效无关。
-
感谢您的帮助,但 ERR_CONNECTION_RESET 是一个握手错误,不是由服务器抛出的。
-
ERR_CONNECTION_RESET 表示服务器已发送 TCP RST 数据包。这不是握手错误,但会导致握手错误 - 如果 TLS 握手甚至已经开始。但这与客户端验证服务器证书有问题无关。
-
那为什么在 curl 和 IE 下可以正常工作,而在其他浏览器上不行?
-
我在 IIS 中尝试使用完全不同的自签名证书并且遇到了同样的问题。适用于 curl 和 IE,仅此而已。
标签: windows google-chrome ssl https ssl-certificate