sslハンドシェイクと証明書認証を実行する必要がある次のコードが与えられました。
1 s = socket.socket()
2 print "connecting..."
3 logging.debug("Connecting")
4 # Connect with SSL mutual authentication
5 # We only trust our server's CA, and it only trusts user certificates signed by it
6 c = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED,
7 ssl_version=ssl.PROTOCOL_SSLv3, ca_certs='ca.crt',
8 certfile='user.crt', keyfile='user.key')
9 c.connect((constants.server_addr, constants.port))
これについて2つの質問があります:
- 接続先のサーバー/ポートはどこで指定しますか?これらの引数は
socket.socket()
? - 証明書とキーをpem形式で抽出した.p12があり(この質問を参照)、これらはそれぞれ
user.crt
とuser.key
(8行目)に対応していると思います。ただし、ca.crt
(7行目)は認証局から取得されたと思いますが、どのように取得すればよいですか?
上記のコードのいずれかの部分またはそれに関する私の仮定が正しくない場合は、私に知らせてください。ありがとう!