[問題] 本地端簡易ssl socket問題

看板Python作者 (愛妳不是兩三天.......)時間14年前 (2011/12/17 00:16), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
想自己在本地端寫一個簡易的ssl server-client code 參考python的官方網站稍微改了一點點,但是卻一直遇到問題解決不了 server code: import socket import ssl bindsocket = socket.socket() bindsocket.bind(('127.0.0.1', 1234)) bindsocket.listen(5) print 'server is waiting for connection...' newsocket, fromaddr = bindsocket.accept() print 'start ssl socket...' connstream = ssl.wrap_socket(newsocket, server_side=True, certfile="/etc/home/ckyang/PHA/testsslsocket/mypha.crt", keyfile="/etc/home/ckyang/PHA/testsslsocket/mypha.key", ssl_version=ssl.PROTOCOL_SSLv23) data = connstream.read() print 'connected from address', fromaddr print 'received data as', repr(data) connstream.close() client code: import socket import ssl s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ssl_sock = ssl.wrap_socket(s, ca_certs= "/home/ckyang/PHA/testsslsocket/myCA.crt", cert_reqs=ssl.CERT_REQUIRED) ssl_sock.connect(("127.0.0.1", 1234)) ssl_sock.write("hello") ssl_sock.close() 相關的error code: server端: File "views.py", line 17, in & lt;module> connstream = ssl.wrap_socket(newsocket, server_side=True, certfile="/etc/home/ckyang/PHA/testsslsocket/mypha.crt", keyfile="/etc/home/ckyang/PHA/testsslsocket/mypha.key", ssl_version=ssl.PROTOCOL_SSLv23) File "/usr/lib/python2.7/ssl.py", line 344, in wrap_socket ciphers=ciphers) File "/usr/lib/python2.7/ssl.py", line 119, in __init__ ciphers) ssl.SSLError: [Errno 336265218] _ssl.c:347: error:140B0002:SSL routines: SSL_CTX_use_PrivateKey_file:system lib client端: File "client.py", line 10, in <module> ssl_sock.connect(("127.0.0.1", 1234)) File "/usr/lib/python2.7/ssl.py", line 299, in connect self.do_handshake() File "/usr/lib/python2.7/ssl.py", line 283, in do_handshake self._sslobj.do_handshake() socket.error: [Errno 104] Connection reset by peer 我的環境python2.7, ubuntu平台, openssl 0.9.8 certificate跟private都是自己用openssl簽的 參考了三個網址試了很多次: http://ppt.cc/H;IG http://ppt.cc/bxA9 http://ppt.cc/G5YZ 都還是一樣出現一樣的error,自己覺得code應該是沒有寫錯 請問有神人知道我code的問題到底出在哪裡嗎? 有問過一些人他們說有可能是因為python ssl lib不支援加密的private key 或是我的certificate檔,key檔不是PEM格式等等~都是比較偏向在憑證這方面的答案 再者請問撰寫python的ssl socket有啥需要特別注意的地方嗎? 麻煩各位了,發文經驗不多,格式不佳請見諒~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.9.180

12/17 01:45, , 1F
Foundations of Python Network Programming
12/17 01:45, 1F

12/17 01:46, , 2F
Chapter 15 有提到SSL相關的資訊。
12/17 01:46, 2F

12/17 02:07, , 3F
你提到的這個是書嗎? 還是PYTHON的官方文件~
12/17 02:07, 3F

12/20 00:12, , 4F
是一本書,google一下就可以載到了,載不到再寄信給我
12/20 00:12, 4F
文章代碼(AID): #1EwsxUXj (Python)
文章代碼(AID): #1EwsxUXj (Python)