SSL で保護された Web ページから情報を取得するソフトウェアを作成しています。以下は、サーバーに接続するために使用するコードです。
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket (
s,
ca_certs = '/home/stilz/Desktop/Certyfikaty/GLOWNE_CA.cer',
cert_reqs = ssl.CERT_REQUIRED,
ssl_version = ssl.PROTOCOL_SSLv3,
)
ssl_sock.connect ((HOST, PORT))
ただし、これは機能しません。「ハンドシェイクアラートが失敗しました」というメッセージで例外をスローします。スクリプトから出てくるいくつかの TCP パケットと Internet Explorer からの対応するパケットをキャプチャしたところ、IE が正常に送信している間、スクリプトが証明書をまったく送信しないことがわかりました (サーバーは「致命的: 証明書が提供されていません」のようなものを返します)。私が知る限り、ファイル ca.cer は x509 証明書です (「-----BEGIN CERTIFICATE-----」で始まります)。
私を助けて、私が間違っていることを教えてください。私が提供した情報が少ない場合は、お知らせください。
よろしく