我想建立一个TLS通信,但是当我想用WireShark检查它时,它说这是一个不使用TLS的普通TCP连接。由于证书的原因,它不应该是这样的。
客户端:
import socket
import ssl
hostname = 'localhost'
# PROTOCOL_TLS_CLIENT requires valid cert chain and hostname
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.load_verify_locations('certificates/ca.pem')
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssock = context.wrap_socket(sock, server_hostname=hostname)
ssock.connect((hostname, 8080))
print(ssock.version())
ssock.send("TLSnotWorking".encode("UTF-8"))
ssock.close()
服务器:
import ssl
import socket
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain('certificates/server.pem', 'certificates/server.key')
with socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) as sock:
sock.bind(('127.0.0.1', 8080))
sock.listen(5)
with context.wrap_socket(sock, server_side=True) as ssock:
try:
while True:
conn, addr = ssock.accept()
try:
while True:
msg = conn.recv(4096)
if not len(msg):
conn.close()
break
print(msg.decode("UTF-8"))
except Exception as e:
print(e)
except KeyboardInterrupt:
conn.close()
ssock.shutdown(socket.SHUT_RDWR)
ssock.close()
发布于 2021-02-25 17:37:47
wireshark可以判断是否是TLS,但我只是使用了错误的端口,例如端口上的"8443“,您可以查看是否存在TLS通信
https://stackoverflow.com/questions/66356245
复制相似问题