从需要客户端身份验证而不认证的服务器上使用python3获取证书?

时间:2019-01-22 18:53:40

标签: python-3.x ssl openssh

是否可以仅从需要客户端身份验证的服务器上使用python3获取证书而不进行身份验证?

我的环境中有一台服务器需要客户端ssl证书进行身份验证。如果您没有证书,则在与openssl连接时,您将能够获取证书,但会收到错误消息:Post with details。该错误发生在握手后期。

如果我尝试使用ssl模块使用python:

hostname = 'serverwithclientauth'
# PROTOCOL_TLS_CLIENT requires valid cert chain and hostname
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.load_verify_locations('path/to/cabundle.pem')

with socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) as sock:
    with context.wrap_socket(sock, server_hostname=hostname) as ssock:
        print(ssock.version())

(基本上是从Python.org复制/粘贴)),wrap_socket失败。我想知道ssl序列是否可以分解为较小的块,以便我可以在服务器将证书发送给客户端后终止。

我已经尝试过:

ssl.get_server_certificate((host,port))

但是对于该主机而言,即使只有一点点失败(其他没有客户端身份验证要求的主机也能正常工作!)。

0 个答案:

没有答案