python - Wireshark 未检测到 TLS 连接

标签 python sockets ssl wireshark

我想进行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()

最佳答案

wireshark 可以判断它是否是 TLS 但我只是使用了错误的端口,例如端口上的“8443”你可以查看是否有 TLS 通信

关于python - Wireshark 未检测到 TLS 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66356245/

相关文章:

python - 将Windows路径转换为使用环境变量的路径

java - 丢弃来自套接字的输入

R RPostgreSQL 使用 SSL 连接到远程 Postgres 数据库

c++ - 使用 libcurl 的 CA 证书身份验证

sockets - 在客户端仅发送其证书(单向身份验证)的 SSL 握手中是否可能。服务器不需要发送任何证书吗?

python - 如何制作即使在 Python 中引发异常的情况下也能解锁的目录锁

Python 全局作用域问题

python - 如何将其转换为日期时间

java - UDP 数据包内容在传输时发生变化

java - 绑定(bind)到地址的套接字无法连接到监听器,除非在 Win XP 上绑定(bind)到 127.0.0.1