首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同的Linux机器上,TLS版本不同。

在不同的Linux机器上,TLS版本不同。
EN

Stack Overflow用户
提问于 2022-07-26 06:28:28
回答 1查看 43关注 0票数 0

我在python中有一个TLS工作代码,如下所示:

代码语言:javascript
复制
import datetime
import sys
import ssl
from aiosmtpd.smtp import SMTP
from aiosmtpd.controller import Controller
from aiosmtpd.handlers import Debugging

class Server:
        
        async def handle_DATA(self, server, session, envelope):
            #some code here
            return "250 OK"

            
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile='cert.pem', keyfile='key.pem')
    
class ControllerStarttls(Controller):
    def factory(self):
        return SMTP(self.handler, enable_SMTPUTF8=True,require_starttls=True, tls_context=context)

controller = ControllerStarttls(Debugging(), hostname='localhost',port=587)

controller.start()
controller.stop()

这段代码在WSL上测试时给出了TLSv1.3,但是在用虚拟机进行测试时,它显示了TLSv1.2。知道为什么TLS的版本会有不同之处吗。

代码语言:javascript
复制
The openssl and python versions on both machines are: 

On WSL(NAME="Ubuntu" VERSION="20.04.4 LTS (Focal Fossa)") :

$ python3 --version
Python 3.8.10
$ openssl version
OpenSSL 1.1.1f  31 Mar 2020

On Linux Virtual Machine (NAME="Red Hat Enterprise Linux"
VERSION="8.4 (Ootpa)")
python --version
Python 3.8.6
openssl version
OpenSSL 1.1.1g FIPS  21 Apr 2020

用于测试上述代码的openssl命令是:

代码语言:javascript
复制
openssl s_client -starttls smtp -crlf -connect localhost:587

有人能提出tls版本差异的原因吗?因为我的要求是在Linux虚拟机(RHEL)上获得TLSv1.3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-26 08:18:49

问题如下:

在WSL (TLSv1.3工作)上,您使用的是OpenSSL版本的1.1.1f 31 Mar 2020

在RHEL (TLSv1.2工作)上,您使用的是OpenSSL版本的1.1.1g FIPS 21 Apr 2020

FIPS版本符合FIPS140-2,这意味着它只能使用FIPS认证的算法。TLSv1.3似乎还没有认证,所以必须在该包版本中禁用它。

我建议您卸载OpenSSL FIPS版本,并使用与WSL相同的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73118619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档