我得到了以下代码,应该执行 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))
我对此有两个问题:
- 我们在哪里指定我们连接的服务器/端口?这些论据是
socket.socket()
什么? - 我有一个 .p12,从中提取了一个 pem 格式的证书和一个密钥(请参阅这个问题),我假设它们分别对应于
user.crt
和user.key
(第 8 行)。但是,虽然我假设ca.crt
(第 7 行)是从证书颁发机构检索的,但如何检索它?
如果上述代码的任何部分或我对它的假设不正确,请告诉我。谢谢!