【问题标题】:How to stop handshaking and data sharing, if the server does not REQUEST for client certificate in two way SSL authentication in python3?如果服务器没有在 python3 中以两种方式 SSL 身份验证请求客户端证书,如何停止握手和数据共享?
【发布时间】:2021-06-12 17:45:23
【问题描述】:

我正在使用 pyhthon3 requests 库,并希望使用 HTTPS 从服务器请求一些资源。所以我使用了两种方式的 SSL 身份验证,并且我已经配置了服务器,它不会为响应 'client Hello' 请求而REQUEST 请求客户端证书。

如您所见,IP xxx.xx.xxx.100 是客户端,IP xxx.xx.xxx.207 是服务器。因此,当客户端向服务器发送 'Client Hello' 时,服务器不会 REQUEST 请求客户端证书,即使它是双向 SSL 身份验证。

那么根据我的要求,在这种情况下,如何立即停止握手和数据共享的过程?或者如何强制服务器REQUEST获取客户端证书?

【问题讨论】:

    标签: python-3.x ssl python-requests ssl-certificate client-certificates


    【解决方案1】:

    ...尽管它是两种方式的 SSL 身份验证。

    不是。仅仅因为客户端有证书做相互认证,并不意味着这个证书被实际使用。只有当服务器实际使用 CertificateRequest 请求它并且客户端然后提供请求的证书时,它才是相互身份验证。

    ...在这种情况下如何立即停止握手和数据共享过程?

    你不能。没有用于此的 API。

    而且我不确定这样的要求会有什么意义。客户端已成功验证服务器,这应该是客户端与服务器交换数据所需的全部。相反,服务器可能想在发送特定数据之前知道客户端是谁。因此,从服务器的角度来看,在提供此类数据之前对客户端进行身份验证是有意义的,但从客户端的角度来看则不然。这就像如果没有人检查你的驾照,你就拒绝开车。

    或者如何强制服务器请求客户端证书?

    这完全取决于服务器的类型。不同的服务器需要不同的配置。例如使用 nginx 参见ssl_verify_client

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多