python SSL连接

时间:2016-06-01 10:38:49

标签: python-2.7 ssl

我正在python中做一个项目,我需要实现客户端创建一个ssl连接到我也实现的服务器。

我使用了ssl.wrapsocket(),但出于某种原因,当我使用Wireshark嗅探流量时,我只看到TCP握手。

这是我的客户端代码:

import socket
import ssl
import os

SERVER_ADDRESS = ('**********', 10000)

#open a TCP socket
client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_sock.settimeout(20000)

#connect to the server
client_sock.connect(SERVER_ADDRESS)

#start ssl handshake with the server
keyfile = os.path.dirname(__file__).replace('/', '\\') + '\\server.key'
certfile = os.path.dirname(__file__).replace('/', '\\') + '\\server.crt'

cli_ssl_sock = ssl.wrap_socket(
    sock=client_sock,
    certfile=certfile,
    keyfile=keyfile,
    server_side=False,
    ssl_version=ssl.PROTOCOL_SSLv23,
    ca_certs=None,
    do_handshake_on_connect=False,
    suppress_ragged_eofs=True,

)
cli_ssl_sock.do_handshake()

这是我的服务器端代码:

import socket
import ssl

SERVER_ADDRESS = ('**********', 10000)

keyfile = '/root/Desktop/server.key'
certfile = '/root/Desktop/server.crt'


#create TCP socket
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#bind the socket
server_sock.bind(SERVER_ADDRESS)

#listen
server_sock.listen(5)

print 'server is listening ...'

#receiving connections
while True:
    conn_sock, client_address = server_sock.accept()
    print 'new connection from : ' + str(client_address)

    ssl_server_sock = ssl.wrap_socket(
                    sock=conn_sock,
                    certfile=certfile,
                    keyfile=keyfile,
                    server_side=True,
                    ssl_version=ssl.PROTOCOL_SSLv23,
                    ca_certs=None,
                    do_handshake_on_connect=True,
                    suppress_ragged_eofs=True,
                    )

0 个答案:

没有答案