我有以下簡單Python代碼,其目的是執行SSL握手並驗證客戶端和服務器之間的證書:python中的這個ssl錯誤是什麼意思?
ssl_test.py:
import ssl
import socket
s = socket.socket()
print "connecting..."
#logging.debug("Connecting")
# Connect with SSL mutual authentication
# We only trust our server's CA, and it only trusts user certificates signed by it
c = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED,
ssl_version=ssl.PROTOCOL_SSLv3, ca_certs='ca.crt',
certfile='user.crt', keyfile='user.key')
c.connect((constants.server_addr, constants.port))
當我執行此,我得到以下錯誤。
>python ssl_test.py
Traceback (most recent call last):
File "ssl_test.py", line 12, in <module>
c.connect(('192.168.1.82', 7070))
File "C:\Python27\lib\ssl.py", line 331, in connect
self._real_connect(addr, False)
File "C:\Python27\lib\ssl.py", line 314, in _real_connect
self.ca_certs, self.ciphers)
ssl.SSLError: [Errno 0] _ssl.c:340: error:00000000:lib(0):func(0):reason(0)
這個錯誤是什麼意思,我該如何解決它?
它可能已經格式錯誤。不知道這是怎麼發生的,但我直接從服務器上下載了證書(我有ssh訪問權限)並使用該證書,並能夠使其工作。謝謝! – ewok
@ewok,如果您需要更一般的CA證書列表,您可以檢查[此問題](http://stackoverflow.com/q/10095676/372643)。 – Bruno