.NET RemoteCertificateNameMismatch 发生在 Mac 上的两个本地应用程序之间,但在 Windows 上工作正常

问题描述 投票:0回答:1

我的开源项目有一对 .NET Core 演示应用程序,可以通过 SSL 进行通信。

当我在 Windows 上运行它们时,一切都很好。 但是当我在 Mac 上运行它们时,我收到 RemoteCertificateNameMismatch 错误。

例外情况是:

<event> Connecting to 127.0.0.1 on port 5001
<event> Remote certificate was not recognized as a valid certificate: RemoteCertificateNameMismatch
<event> Unable to perform authentication against server: The remote certificate was rejected by the provided RemoteCertificateValidationCallback.
<event> Connection failed: System.Security.Authentication.AuthenticationException: The remote certificate was rejected by the provided RemoteCertificateValidationCallback.
   at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception)
   at System.Net.Security.SslStream.CompleteHandshake(SslAuthenticationOptions sslAuthenticationOptions)
   at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
   at System.Net.Security.SslStream.AuthenticateAsClient(SslClientAuthenticationOptions sslClientAuthenticationOptions)
   at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
   at [a few more lines of my app code...]
   ...

我在每个平台上以相同的方式运行服务器/客户端对 - 相同的证书、相同的 CA 证书、相同的证书密码、客户端指向

127.0.0.1
等。

我错过了什么? Mac 在这里做了哪些不同而我没有考虑到的事情?

如果有帮助,应用程序“Executor”(服务器)和“TradeClient”(客户端)位于:https://github.com/connamara/quickfixn/tree/master/Examples

(我知道SO更喜欢内联上下文而不是链接,但我不知道什么是相关的。一旦我了解了该上下文可能是什么,我将用相关上下文修改这个问题。)

c# ssl .net-core ssl-certificate certificate
1个回答
0
投票

好奇心战胜了我,AFAICT,您使用的是带有

CN=QuickFixn-Server
且没有SubjectAlternativeName 扩展名的证书。 它在 mac 上失败是正确的(没有 SAN,所以与 CN 匹配,但它不匹配)...神秘的是为什么它在 Windows 上失败。 与其解决您在 Windows 上遇到的兼容性差距之谜,不如使用正确的SubjectAlternativeName 扩展名重新创建您的证书。 (由于您要连接到 127.0.0.1,因此需要将其编码为 iPAddress,而不是 dNSName)

© www.soinside.com 2019 - 2024. All rights reserved.