2016-10-16 37 views
0

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) 

ここで間違っているものを任意のアイデア?あなたのコードから

答えて

2

documentation of wrap_socketから

    cert_reqs=ssl.CERT_REQUIRED, 
        ca_certs=None 

If the value of this parameter is not CERT_NONE, then the ca_certs parameter must point to a file of CA certificates.

基本的には、サーバー(CERT_REQUIRED)から証明書を検証したがと同時に指定するために、あなたのコード内で求めています信頼できるルートがありません(ca_certs=None)。しかし、信頼できるルート証明書がなければ、検証は実行できません。

代わりにCERT_NONEを使用するようにコードを変更することは悪い考えです。証明書の検証は行われないのでおそらくうまくいくが、中間の攻撃では人間には開いているだろう。

+0

実際に私は 'ca_certs'も提供してみましたが、役に立たないです。 –

+0

@OsamaRasheed:ファイルの内容が 'ca_certs'で指定された内容に大きく依存します。あなたの場合はおそらく[この証明書](https://www.tbs-certificates.co.uk/FAQ/en/357.html)がファイルに必要です。 –

関連する問題