gpt4 book ai didi

.net - "Could not create SSL/TLS secure channel"即使 SCHANNEL 报告 "An SSL server handshake completed successfully."

转载 作者:行者123 更新时间:2023-12-04 17:46:04 25 4
gpt4 key购买 nike

我正在跟踪单元测试中臭名昭著的“SSL 异常” - 在 ReSharper 下运行测试、我帐户下控制台中的 nunit 以及构建服务器集成测试中都会生成相同的异常。在本地,代码从安装了 .NET 4.5.1 的 Windows 7 机器上运行。

System.Net.WebException : The request was aborted: Could not create SSL/TLS secure channel.



我相当确定它与证书没有严格的关系,尽管它们最近已更新。 (故障的确切时间是接近的,但不是确定的——另一方面,这是不同环境中最有可能的相关变化。)

IIS 设置为需要客户端证书,并且到同一端点的 HTTPS 连接在 Chrome 中为“绿色”。如果我在 Chrome 中选择了无效的客户端证书,我会收到一条来自 IIS 的 403 消息,该消息通过成功创建的 HTTPS 连接提供。

问题:
  • 为什么(如何)在“握手成功完成”后安全 SSL/TLS channel 创建失败?
  • HTTP 403 Forbidden 状态响应以及可能的 WebClient 处理是否是一个因素?如果不是,则可以放弃该查询路径。
  • 调试问题的下一步是什么?初始协商后是否有特定的可监控事件指示成功(或失败)?


  • 以下是在消除其他帖子中发现的问题时收集到的信息:
  • 这是异常树的结尾;没有内部“根据验证程序远程证书无效”异常,这是我对证书错误的期望。
  • 启用 SCHANNEL 的“所有日志记录”后,服务器显示

    An SSL server handshake completed successfully. The negotiated cryptographic parameters are as follows.

    Protocol: TLS 1.0 / CipherSuite: 0x5 / Exchange strength: 2048

  • 来自失败的单元测试的 SSL 握手/协商在 Wireshark 上“看起来成功”。 (它与 Chrome 请求不同,并且具有不同的协商 CipherSuite。)
  • HTTP 客户端超时为 100 秒,这应该是默认值。


  • 有点有趣,第一个失败的测试是 ShouldCompleteSslHandshakeFor[InvalidClientCert] .

    更新:查看本地机器的事件查看器(不要问我为什么会发生这种情况)后,失败的连接有相应的条目:

    (SCHANNEL) A fatal error occurred when attempting to access the SSL client credential private key. The error code returned from the cryptographic module is 0x8009030d. The internal error state is 10003.



    这绝对是握手后加密 channel 失败的有效原因。

    最佳答案

    确保访问客户端证书的进程可以访问证书的私钥。

    MMC Console with the Certificate Plugin -> Right Click the specified certificate -> All Tasks -> Manage Private Keys.

    关于.net - "Could not create SSL/TLS secure channel"即使 SCHANNEL 报告 "An SSL server handshake completed successfully.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522213/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com