2013-01-23 43 views
4

我試圖在客戶端和我開發的服務器之間使用ssl建立連接。 基於此:http://bobthegnome.blogspot.fr/2007/08/making-ssl-connection-in-python.html 我創建了一個簡單的連接,它的工作。但我想通過添加客戶端身份驗證來改進它。所以我發現有些人使用socket.warp_socket。PYTHON SSL - 設置ssl連接的兩種方式的區別

下面是一個例子:

bindsocket = socket.socket() 
bindsocket.bind(('127.0.0.1', 9998)) 
bindsocket.listen(5) 

while True: 
    newsocket, fromaddr = bindsocket.accept() 
    connstream = ssl.wrap_socket(newsocket, 
          server_side=True, 
          certfile="srv.crt", 
          keyfile="srv.key", 
          ssl_version=ssl.PROTOCOL_TLSv1) 
    deal_with_client(connstream)  

的是這兩者之間的區別?女巫是最好的(在我的情況下)?

謝謝

回答

2

沒有區別。

socket.ssl()是下稱socket.wrap_socket()棄用的方法,只是做了一些檢查蟒蛇是否已經編譯支持SSL(這import ssl在任何情況下爲你做)。

def ssl(sock, keyfile=None, certfile=None): 
    # we do an internal import here because the ssl 
    # module imports the socket module 
    import ssl as _realssl 
    warnings.warn("socket.ssl() is deprecated. Use ssl.wrap_socket() instead.", 
        DeprecationWarning, stacklevel=2) 
    return _realssl.sslwrap_simple(sock, keyfile, certfile)