首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ssl.SSLError:(‘不能选择密码’)在Python SSL中设置TLS1.3密码套件时

ssl.SSLError:('不能选择密码')在Python SSL中设置TLS1.3密码套件时,这个错误通常是由于Python版本不支持TLS1.3密码套件引起的。TLS1.3是一种较新的加密协议,它提供了更高的安全性和性能。

要解决这个问题,首先需要确保你使用的是支持TLS1.3的Python版本。从Python 3.7开始,TLS1.3已经被默认启用,因此建议使用Python 3.7或更高版本。

如果你使用的是较旧的Python版本,你可以尝试升级到最新版本,或者使用第三方库来支持TLS1.3。一个常用的第三方库是pyOpenSSL,它提供了对TLS1.3的支持。

另外,还需要确保你的操作系统和SSL库也支持TLS1.3。如果你使用的是较旧的操作系统或SSL库,可能需要升级它们以支持TLS1.3。

在Python中设置TLS1.3密码套件时,你可以使用ssl.SSLContext对象来配置SSL连接。以下是一个示例代码:

代码语言:txt
复制
import ssl

# 创建SSL上下文对象
context = ssl.SSLContext(ssl.PROTOCOL_TLS)

# 设置密码套件为TLS1.3
context.set_ciphers('TLS_AES_256_GCM_SHA384')

# 创建SSL连接
# ...

在上面的示例中,我们使用ssl.SSLContext创建了一个SSL上下文对象,并将密码套件设置为TLS_AES_256_GCM_SHA384,这是TLS1.3中支持的一种密码套件。你可以根据需要选择其他的TLS1.3密码套件。

对于腾讯云相关产品,推荐使用腾讯云的SSL证书服务来获取和管理SSL证书。腾讯云SSL证书服务提供了全球领先的数字证书品牌,保证了网站和应用的安全性。你可以访问腾讯云SSL证书服务的官方网站了解更多信息:腾讯云SSL证书服务

注意:以上答案仅供参考,具体的解决方法可能因实际情况而异。在实际应用中,建议参考官方文档或咨询相关专业人士以获得准确的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OpenSSL支持TLS1.3特性(1)

-GCM-SHA256 TLS13-AES-128-CCM-8-SHA256 TLS13-AES-128-CCM-SHA256 其中,前三个是默认密码套件。...密钥交换和认证属性是TLS 1.2及以前版本密码套件定义的一部分。TLS 1.3不再如此,所以密码套件别名(如ECHHE、ECDSA、RSA及其它相似别名)都不包含任何TLS 1.3密码套件。...enabled for max supportedSSL/TLS version 例如,默认设置一个密码套件选择字符串ECDHE:!...但是,ECDHE组没有TLS 1.3密码套件,所以如果启用了TLS 1.3,那么这种密码套件配置OpenSSL 1.1.1将会出错。你可能要指定你想使用的TLS 1.3密码套件来避免出现问题。...COMPLEMENTOFDEFAULT" 你可以使用openssl ciphers-s -v命令来测试,在给定的密码套件选择字符串包含那个密码套件 $ openssl ciphers -s -v"ECDHE

3.1K20

HTTP - TLS1.3 初次解读

TLS1.3的RFC的原文中定义了下面的加密套件,但是需要注意TLS1.3的加密套件虽然看起来和TLS1.2有部分重合,但是TLS 1.3 为了进一步简化加密套件的概念,这里的加密套件实际上指的是 对称加密密钥的协商...SSL session resumption 的原理是服务端缓存所有的session,客户端之后每次和服务端握手通过Session ID完成session resumption。...,TLS1.3做的比TLS1.2更加完善,TLS1.2的流程是双方先由客户端选择支持算法算法,然后服务端通过选择确定使用ECHED算法,然后由 服务端最终选择的函数曲线,所以步骤较为固定,双方各需要根据协定好的函数曲线选择合适的参数...总之RFC设置了一些细节规定Session ID兼容和使用问题,TLS1.3我们的重心更应该放在PSK上,因为Session ID 是非常传统的会话握手关键字段。...signature_algorithms 标识了客户端所选择的算法,上面看似很多的加密套件,实际上TLS1.3 选择加密只有一个巴掌的数量,传输一些其他的加密算法同样是为了兼容和有可能的重新协商握手考虑

2.8K10

Tls v1.3的里程碑发展

一、重新设计协议 1.1.SSL握手对比 SSL握手完成双方鉴权Auth、协商对称密钥的过程。对比TLS1.2(图2)和TLS1.3(图3)的握手区别。TLS1.3重新设计了12种握手报文。...TLS1.3移除了compression,移除了DSA和DHE group 只支持5种加密套件(TLS v1.2,37种,之前版本319种) 二、更低TLS1.3延上比TLS1.2更有优势。...有人提出将Encrypt和MAC直接集成一个算法内部,让有经验的密码专家算法内部解决安全问题,不让算法使用者选择,这就是这就是AEAD(Authenticated-Encryption With Addtional...AEAD将完整性校验和数据加密两种功能集成同一算法完成,是TLS 1.3唯一支持的加密方式。...AEAD算法和使用HKDF的hash算法组成了TLS1.3的可用密码套件 +------------------------------+-------------+ | Description |

3.6K210

网络安全的第一道防线:深入探索sslscanSSLTLS证书安全检测的原理与实践

一、前言sslscan用于扫描SSL/TLS证书并报告协议版本、密码套件、密钥交换、签名算法和证书详细信息等,帮助用户从安全角度加强数据传输安全性,同时,sslscan还可以将结果输出到XML文件,以便外部程序使用...Key的含义,示例:sslscan --pk=xxx.key 当私钥有密码,则通过--pkpass来指定密码:sslscan --pkpass=password 同理,双向认证场景...会显示TLS协商使用的签名算法:16.启用SSL错误的解决方案(--bugs)当SSL证书存在错误时,--bugs可提供建议的解决方案:sslscan --bugs 17.设置socket超时时间...AES256-SHA)『前言』部分说过,黄色字体表示弱密码套件,通过详细的输出日志可以看到SSL_get_current_cipher函数返回了一个空值,因为对端的cipher套件都不在上述这一长串的套件里...,则认为是弱密码套件,字体标黄,SSL_get_current_cipher函数返回NULL,SSL_connect函数返回-1。

6.4K109100

Rabbitmq加密套件详解

TLS1.3已经取消了重协商的机制。 密码套件 密码套件是TLS发展了一段时间积累了很多密码学使用的经验之后提出的一整套的解决方案。...TLS握手的时候ClientHello里面携带了客户端支持的密码套件列表,ServerHello携带了Server根据Client提供的密码套件列表中选择的本地也支持的密码套件。...也就是说选择使用什么密码套件选择Server的手里(使用nginx的时候把ssl_prefer_server_ciphers配置项打开),而Server通常可以通过配置文件指定Server要支持的密码套件的列表和顺序...两种rabbitmq配置样式文件均接受OpenSSL格式,但是如果是经典样式配置文件,需要加双引号。 上述命令列出的密码套件采用的格式适用于客户端TLS连接的socket加密。...--formatter=erlang -q 配置加密套件 新样式配置文件,使用ssl_options.ciphers配置选项配置密码套件

1.7K20

HTTPS 握手会影响性能吗?废话,肯定会

而且,TLS1.3密码套件进行“减肥”了,对于密钥交换算法,废除了不支持前向安全性的 RSA 和 DH 算法,只支持 ECDHE 算法。...对于对称加密和签名算法,只支持目前最安全的几个密码套件,比如 openssl 仅支持下面 5 种密码套件: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256...TLS_AES_128_GCM_SHA256 TLS_AES_128_CCM_8_SHA256 TLS_AES_128_CCM_SHA256 之所以 TLS1.3 仅支持这么少的密码套件,是因为...TLS1.2 由于支持各种古老且不安全的密码套件,中间人可以利用降级攻击,伪造客户端的 Client Hello 消息,替换客户端支持的密码套件为一些不安全的密码套件,使得服务器被迫使用这个密码套件进行...而 TLS1.3 更为牛逼,对于重连 TLS1.3 只需要 0 RTT,原理和 Ticket 类似,只不过重连,客户端会把 Ticket 和 HTTP 请求一同发送给服务端,这种方式叫 Pre-shared

1K20

HTTPS你不要这么慢了

ECDHE算法选择椭圆曲线尽量选择X25519的曲线,该曲线是目前最快的曲线。 Nginx上可以使用ssl_ecdh_curve 指令配置想使用的椭圆曲线,把优先使用的放在前面。...ssl_ecdh_curve X25519:prime256v1:secp384r1; 对称加密算法优化 对称加密算法安全性要求不是很高的情况下尽量选择AES_128_GCM,因为AES_128_GCM...Nginx上可以使用ssl_ciphers 指令配置想使用的密钥套件(非对称加密算法和对称加密算法),比如: ssl_ciphers ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128...-SHA; 使用以下命令可以查看本地Open SSL密码套件 openssl ciphers TLS1.2升级为1.3 TLS1.3的握手简化为一个1RTT,大大减少了网络IO的耗时。...Client Hello包含一个key_share,key_share是椭圆曲线类型及其对应的公钥,第一个是预留的空值,第二个是我们这里选择的x25519曲线类型对应的公钥 Server Hello

1.3K30

截获TLS密钥——Windows Schannel

完全正向保密 所有密码套件可以根据是否支持完全正向保密(Perfect Forward Secrecy,PFS)25来进行分类。...当使用非PFS密码套件,任何加密连接都可以使用其捕获流量和服务器TLS私钥对进行解密。相反,对于PFS密码套件,你需要相关会话的临时密钥才能解密它。...,为NCRYPTBUFFER_SSL_SERVER_RANDOM 当BufferType为0x14偏移0x08处是指向client random数据的指针 ?...但是当windows服务器接受非PFS加密套件的连接并不会调用SslGenerateMasterKey函数,用于9的ncrypt!NCryptDeriveKey也不例外。...SslComputeFinishedHash函数被hash句柄调用时获得散列数据摘要 使用RFC 7627 session hash方式TLS1.3和TLS1.2会调用这个函数。

3.9K10

科普 TLS 1.3 — 新特性

以 ECDHE 密钥交换算法为例,TLS1.2 协议完整的 SSL 握手过程如下: 第一步,首先客户端发送 ClientHello 消息,该消息主要包括客户端支持的协议版本、加密套件列表及握手过程需要用到的...可以看到,TLS1.2 协议需要加密套件协商、密钥信息交换、ChangeCipherSpec 协议通告等过程,需要消耗 2-RTT 的握手时间,这也是造成 HTTPS 协议慢的一个重要原因之一。... TLS 1.3 ,客户端首先不仅发送 ClientHello 支持的密码列表,而且还猜测服务器将选择哪种密钥协商算法,并发送密钥共享,这可以节省很大一部分的开销,从而提高了速度。...TLS1.3 提供 1-RTT 的握手机制,还是以 ECDHE 密钥交换过程为例,握手过程如下。...RTT,支持 0-RTT; 兼容中间设备 TLS 1.2; 加密握手消息; TLS1.2 及之前版本的协议各种扩展信息 ServerHello 以明文方式发送,但是 TLS 1.3 协议要求 ServerHello

3K60

真正“搞”懂HTTPS协议18之TLS特性解析

TLS1.3,用了一个新的“扩展协议”(Extension Protocol),它有点“补充条款”的意思,通过在记录末尾添加一系列的“扩展字段”来增加新的功能,老版本的 TLS 不认识它可以直接忽略...二、强化安全   TLS1.2 十来年的应用获得了许多宝贵的经验,陆续发现了很多的漏洞和加密算法的弱点,所以 TLS1.3 就在协议里修补了这些不安全因素。...算法精简后带来了一个意料之中的好处:原来众多的算法、参数组合导致密码套件非常复杂,难以选择,而现在的 TLS1.3 里只有 5 个套件,无论是客户端还是服务器都不会再犯“选择困难症”了。    ...三、提升性能   HTTPS 建立连接除了要做 TCP 握手,还要做 TLS 握手, 1.2 中会多花两个消息往返(2-RTT),可能导致几十毫秒甚至上百毫秒的延迟,移动网络延迟还会更严重。   ...现在因为密码套件大幅度简化,也就没有必要再像以前那样走复杂的协商流程了。

1.4K20

TLCP的过去、现在与未来

和SSLVPN等协议和产品,就不能直接采用国际TLS标准及其密码算法,因此需要一个采用国产商用密码算法的类SSL传输层安全协议,即国密版类SSL协议,简称国密SSL。...最早国密SSL是作为密码行业标准存在的,且不是一个独立的协议标准,而是定义SSVLPN产品的技术规范里,即《GM/T 0024-2014 SL VPN技术规范》。...《GB/T 38636-2020》基本兼容《GM/T 0024-2014》,主要变化如下: 1)增加了GCM的密码套件,ECC_SM4_GCM_SM3和ECDHE_SM4_GCM_SM3; 2)去掉了行标...《GM/T 0024-2014》的涉及SM1和RSA的密码套件。...随着应用场景的拓展,以及技术的不断迭代,更远的将来,TLCP本身也一定会吸收包括TLS1.3在内的各种先进思想和技术,继续推出TLCP的新的版本。

3.1K71

HTTP与HTTPS的区别,详细介绍

/TLS历史 SSL/TLS协议的基本过程 SSL/TLS 密码套件 HTTPS涉及的计算环节 HTTPS的缺点 如何优化HTTPS的速度 ---- HTTP与HTTPS介绍 超文本传输协议...最新的变动是2011年TLS 1.2的修订版,2018年也发布了TLS1.3版本。 TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。...SSL/TLS 密码套件 浏览器和服务器使用 TLS 建立连接需要选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件”(cipher suite,也叫加密套件)。...TLS 的密码套件命名格式为:密钥交换算法 + 签名算法 + 对称加密算法 + 摘要算法 如对于套件:“ECDHE-RSA-AES256-GCM-SHA384”,其解释为:握手使用 ECDHE 算法进行密钥交换...使用 ECDHE 椭圆曲线密码套件,可以节约带宽和计算量,还能实现“False Start”,采用 False Start (抢先开始)技术,浏览器与服务器完成 TLS 握手前,就开始发送请求数据,服务器收到这些数据后

3.6K20

HTTP面试题 - HTTPS优化

SSL 加速卡”作用是加解密时调用它的 API,让专门的硬件来做非对称加解密,分担 CPU 的计算压力,但是加速卡存在缺陷,升级慢、支持算法有限,不能灵活定制解决方案等问题。...而以更为高效和前向安全椭圆曲线函数显然是更合适的选择,并且TLS 1.3把RSA相关等一系列不安全的算法给直接干掉了。...特殊值auto(1.11.0),表示 nginx 使用 OpenSSL 1.0.2 或更高版本或 默认曲线为prime256v1 旧版本,使用内置于 OpenSSL 库的列表。... 1.11.0 版本之前不进行手动置顶的情况下,prime256v1为默认使用曲线。 当使用 OpenSSL 1.0.2 或更高版本,该指令设置服务器支持的曲线列表。...密码套件(cipher spec): Client 和 Server 协商共同协商出来的密码套件 主密钥(master secret): 注意这里不是预加密的密钥,而是直接生成的主密钥,因为预备密钥是为了算出主密钥服务的

62640

HTTPS:网络安全攻坚战

为此,HTTPS中间引入了一个传输级的密码安全层,该层可以使用安全套接层 Secure Sockets Layer(SSL),也可以使用其后继者:传输层安全 Transport Layer Security...HTTPS = HTTP + SSL or TLS 加入这层之后,收发报文也就不再是使用Socket API,而是调用了安全层提供的安全API。使用HTTPS无需过多的修改协议处理逻辑。...为此,如果我们弄清楚这个SSL/TLS,就理解了HTTPS的精华所在了。 5.2、SSL/TLS发展历史 为了保证安全性,SSL/TLS不断的迭代升级版本,引入了更加安全的算法套件。...下面是大致的升级过程: 1999年,SSL 3.0升级为TLS 1.0,写入到RFC 2246标准。...5.4.2、TLS1.3对安全性和性能的提升 TLS1.3是2018年发布的,这个版本对安全性和性能上有了大幅度提升。

42730

坚持自主可控,长安链ChainMaker全面拥抱国密的技术实践

图1 高 性 能 国密算法性能上,长安链实现了一套国密算法引擎机制,并支持了同济国密库tjfoc(go实现)、北大国密库gmssl(c实现)以及腾讯国密库tencentsm(c实现),通过配置方式可实现灵活选择或切换...标 准 化 标准化方面,除了国密算法标准的支持外,长安链密码协议库按照《GM/T 0024-2014:SSL VPN技术规范》要求,实现了ECC-SM4-SM3密码套件,并与第三方开源软件完成了跨语言的互联互通测试...,该套件将在近期即将发布的版本开源。...长安链国密软件基础组件上进行了积极地探索,先后实现了golang国密版grpcs、java国密版grpcs,并实现了跨语言的互联互通,现已应用到长安链项目: 图4 此外,长安链密码基础库,进一步支持了...python、nodejs相关国密基础组件也持续研发。 结 语 长安链正在持续打造“强隐私、高安全”特性的区块链底层平台,保障国产基础软件自主可控、安全可靠,赋能国家数字经济发展。

1.4K30

【HTTP】HTTPS TLS 1.2

浏览器建立SSL协议连接,实际上就是使用多个子加密协议组合,最终选择合适的加密算法进行数据安全传输,这种算法组合本身被叫做“密码套件”。...数字加密历史数字加密的是计算机出现以及专业的密码机出现之后诞生,但是实际上密码学有了上千年历史,下面我们依照《HTTP权威指南》14.2节的介绍大致回顾数字加密历史。...我们可以把摘要看作是一个指纹,哈希算法可以保证指纹不会被篡改,但是这里显然有一个漏洞:虽然不能改签名,但是可以换签名和内容。...它通过使用 TFO cookie(一个 TCP 选项)工作,TFO cookies是存储客户端上的,并在与服务器初始连接设置的加密 cookie。...cipher_suite:默认从cipher_suites选择合适的加密套件。compression_method:从客户端传递的压缩算法列表,同样从中选择合适算法。

1K30

WEB加速,协议先行 ( 下)

因为现在最新的客户端都已经支持了这个特性,所以对于服务端来廛,我们只需要将支持PFS(完美前向密码)算法的密码套件配置在前面就行了,比如ECDHE,DHE算法配置最前面。...协商好密码套件后,客户端就能提前发送数据,实现false start。False start对完全握手的优化效果也很明显,大概提升了30%。...也有两个方案: 1.Nginx高版本支持一个配置指令ssl_buffer_size,可以将它设置成4K,这样就算有HOL,影响的也只是4K数据,而不是之前的16K。...TLS连接刚刚建立的时候,由于不知道网络速率,可以将record设置得小一点,比如1K,当发送速度逐渐提上来之后,再将这个record size设置成16K。...所以如果大家想使用HTTP2,一定要注意配置好TLS1.2协议,参考RFC7540的规范,配置好密码套件

1.8K30
领券