python中的TLS echo服务器和echoclient崩溃

2024-10-01 17:41:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python编写了一个简单的echo服务器客户端代码。我也产生了密钥文件.pem以及证书文件.pem,使用命令:

openssl genrsa -des3 -out keyfile.pem 2048

openssl req -new -key keyfile.pem -out certfile.pem

当我运行客户机服务器时,它问我关于passphase:Enter PEM pass phrase:,我输入了正确的文本并得到了错误(不知道为什么):

Traceback (most recent call last):   File "echo_server.py", line 19, in <module>
    connection, client_address= tls_server.accept()   File "/usr/lib/python2.7/ssl.py", line 354, in accept
    suppress_ragged_eofs=self.suppress_ragged_eofs),   File "/usr/lib/python2.7/ssl.py", line 141, in __init__
    ciphers) ssl.SSLError: [Errno 336445449] _ssl.c:365: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib

这是我的服务器.py公司名称:

^{pr2}$

以及客户端.py公司名称:

#client side
# echo client
from socket import *
from ssl import *

#user is not finnished
finnished =False

#create socket
client_socket=socket(AF_INET, SOCK_STREAM)
tls_client = wrap_socket(client_socket, ssl_version=PROTOCOL_TLSv1, cert_reqs=CERT_NONE)


#connect to the echo server
tls_client.connect(('localhost',6668))

#while not finnished
while not finnished:

    #message
    message=input ('enter message:   ')

    data_out= message.encode ()

    #send data out
    tls_client.send(data_out)    

    #receive data
    data_in=tls_client.recv(1024)


    #decode message
    response= data_in.decode()
    print('Received from client:', response)

    reapet=input('yes or no?  ')


    if reapet == 'n':
        finnished= True
        client_socket.send(b'quit')



#close the socket
client_socket.shutdown(SHUT_RDWR)
client_socket.close()

可能是什么问题?我使用Kubuntu12.04LTS和Python2.7。在


Tags: inpyechoclientsslmessagedataserver

热门问题