pythonソケットを使用して、ssl経由の要求のみを受け付けるドメインレジストラへの拡張プロビジョニングプロトコル(EPP)要求を作成しようとしています。PythonソケットSSL:証明書の検証に失敗しました
証明書ファイル:www.myDomain.se.crt キーファイル:私は成功したレジストラからの応答が挨拶得るが、
openssl s_client -connect epptestv3.iis.se:700 -cert www.myDomain.se.crt -key mydomain.pem
私はopensslのクライアントを使用して要求を作ってみましょうmydomain.pem私は、次のコードを使用する場合私はSSL証明書のエラーを取得します。
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(15)
sock.connect(('epptestv3.iis.se', 700))
sock.settimeout(60) # regular timeout
ssl_keyfile='myDomain.pem'
ssl_certfile='www.myDomain.se.crt'
ssl_ciphers='AES256-GCM-SHA384'
ssl_version=ssl.PROTOCOL_TLSv1_2
sock = ssl.wrap_socket(sock,
ssl_keyfile,
ssl_certfile,
ssl_version=ssl_version,
ciphers=ssl_ciphers,
server_side=False,
cert_reqs=ssl.CERT_REQUIRED,
ca_certs=None
)
スクリプトを実行した後、私はエラーを次取得:
Traceback (most recent call last):
File "server_connect.py", line 54, in <module>
ca_certs=ssl_keyfile
File "/usr/lib/python2.7/ssl.py", line 933, in wrap_socket
ciphers=ciphers)
File "/usr/lib/python2.7/ssl.py", line 601, in __init__
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 830, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
ここで間違っているものを任意のアイデア?あなたのコードから
実際に私は 'ca_certs'も提供してみましたが、役に立たないです。 –
@OsamaRasheed:ファイルの内容が 'ca_certs'で指定された内容に大きく依存します。あなたの場合はおそらく[この証明書](https://www.tbs-certificates.co.uk/FAQ/en/357.html)がファイルに必要です。 –