【问题标题】:What validation does HTTPListenerRequest.GetClientCertificate have before it gets the certificate?HTTPListenerRequest.GetClientCertificate 在获得证书之前有哪些验证?
【发布时间】:2023-04-07 06:34:01
【问题描述】:

我正在尝试为我的HTTPListener 实现 SSL 握手。我使用 netsh 命令设置用于 SSL 的证书,以便客户端可以验证服务器。一切正常,我只有一个问题。当我这样做时-

HttpListenerRequest.GetClientCertificate()

这是否验证了客户确实是它所说的那个人?这会在收到证书之前根据公钥验证客户端证书的私钥吗?

【问题讨论】:

  • AFAIK 这只是请求客户端证书,您必须自己决定是否信任它。

标签: c# .net httplistener http.sys httplistenerrequest


【解决方案1】:

它确实验证了证书,因为它创建了对 X509Certificate2 构造函数的调用,但验证可能并不意味着您认为它的意思。如果证书丢失、证书无效或证书密码不正确,构造函数将返回加密异常。
(https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.x509certificate2.-ctor?view=net-5.0#System_Security_Cryptography_X509Certificates_X509Certificate2__ctor_System_Byte___System_Security_SecureString_) 这是否证明客户就是他所说的那个人?这是一个更微妙的问题。如果您正在寻找特定的人或组,您可以将可接受客户的指纹存储在数据库中,并且只有在您找到匹配项时才能继续进行。

【讨论】:

    猜你喜欢
    • 2018-07-02
    • 2022-01-03
    • 1970-01-01
    • 2012-07-13
    • 2015-03-22
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多