如何在Python中强制TLS1.3版本

2024-06-01 03:04:48 发布

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

我制作了Python套接字,并分别处理服务器和客户端Python文件。server.py上的一些代码如下所示。(与TLS连接相关的代码)

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_3) 

当我检查wire shark上的通信时,我总是执行TLS1.2,因此我采取了一些措施来执行TLS1.3

#context.options |= ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1 | ssl.OP_NO_TLSv1_2 # optional
context.options |= ssl.OP_NO_TLSv1
context.options |= ssl.OP_NO_TLSv1_1
context.options |= ssl.OP_NO_TLSv1_2

context.set_ciphers('AES256+ECDH:AES256+EDH') #original

尽管我努力实施TLS1.3,但它仍然继续与TLS1.2通信

print(ssl.HAS_TLSv1)    #TRUE
print(ssl.HAS_TLSv1_1)  #TRUE
print(ssl.HAS_TLSv1_2)  #TRUE
print(ssl.HAS_TLSv1_3)  #TRUE

像这样,我试着打印出来检查ssl是否支持每个版本的TLS,但所有打印出来的都是“True”

openssl req -new -x509 -days 365 -nodes -out mycert.pem -keyout mycert.pem

我用来生成证书的命令如上所述

我的Openssl版本也是1.1.1(支持TLS1.3)。一切似乎都很好,但我想知道为什么它仍然与TLS1.2通信。我想知道保持TLS 1.3连接的选项。 enter image description here


Tags: no代码版本truesslcontexttlspem