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

如何针对老旧浏览器设置 HTTPS 策略

但不幸的是,IE 6 只支持 SSLv2 和 SSLv3(来源),也就是说 HTTPS 网站要支持 IE 6,就必须启用 SSLv3。仅这一项就会导致 SSL Labs 给出的评分降为 C。...如果客户端支持的 CipherSuite 列表与服务端配置的 CipherSuite 列表没有交集,会导致无法完成协商,握手失败。...SSL 的 CipherSuite 协商机制具有良好的扩展性,每个 CipherSuite 都需要在 IANA 注册,并被分配两个字节的标志。...但是对于 HTTPS 网站来说,要想发送 HTTP 数据,必须等待 SSL 握手完成,而在握手阶段服务端就必须提供网站证书。...有了 SNI,服务端可以通过 Client Hello 中的 SNI 扩展拿到用户要访问网站的 Server Name,进而发送与之匹配的证书,顺利完成 SSL 握手。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HTTPS 原理浅析及其在 Android 中的使用

    采用CA的私钥对信息摘要进行加密,密文即签名; (4) 客户端在HTTPS握手阶段向服务器发出请求,要求服务器返回证书文件; (5) 客户端读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要...data protocol); 警报协议(alert protocol); (3) 握手协议   握手是TLS协议中最精密复杂的部分。...如下图所示,可以看到传输的数据已经是经过加密之后的了。 ? (7) 警报协议(alert protocol)   警报的目的是以简单的通知机制告知对端通信出现异常状况。...字段:表示警报的严重程度; AlertDescription:直接表示警报代码; ---- 4.在Android中使用HTTPS的常见问题 (1) 服务器证书验证错误   这是最常见的一种问题,通常会抛出如下类型的异常...(2) 域名验证失败   SSL连接有两个关键环节。首先是验证证书是否来自值得信任的来源,其次确保正在通信的服务器提供正确的证书。如果没有提供,通常会看到类似于下面的错误: ?

    3.8K40

    Nginx配置加密套件不当,导致无法建立连接分析

    之前文章写了用zabbix自动发现功能,自动监控服务器上所有域名的SSL证书到期时间,文章分别是简单脚本监控SSL证书到期时间和配置zabbix自动发现实现自动监控服务器所有域名SSL证书到期时间,有兴趣的可以看下...然后有小伙伴说它用的过程中,获取证书到期时间的脚本执行报错 如图,报错结果很明显,就是ssl握手失败,协议是sslv3 获取ssl证书信息的脚本中,是通过SSL.Context构建上下文对象的,...指定使用TLSv1,但是报错是sslv3 于是我在本地测试,我本地是没有问题的,我在脚本中添加输出链接协议版本 然后输出协议确实是使用了TLSv1,这里get_protocol_version返回就是...int型,769是tlsv1 于是,我让小伙伴把域名发我,我用脚本执行,报同样的错误 在执行do_handshake,握手的时候就报错了,所以也没有输出建立连接的协议版本,没办法,只能抓包看了 抓到包...client hello的包,查看加密套件 又问小伙伴要了nginx配置的加密套件 可以看到,和客户端的加密套件不匹配,所以这就是为什么握手不成功的原因,可以看到,小伙伴的加密套件设置的太严格了,所以我让他重新配置了加密套件

    4.2K10

    Nginx加密套件配置不当,造成SSL无法建立连接

    之前文章写了用zabbix自动发现功能,自动监控服务器上所有域名的SSL证书到期时间,文章分别是简单脚本监控SSL证书到期时间和配置zabbix自动发现实现自动监控服务器所有域名SSL证书到期时间,有兴趣的可以看下...然后有小伙伴说它用的过程中,获取证书到期时间的脚本执行报错 ?...如图,报错结果很明显,就是ssl握手失败,协议是sslv3 ?...获取ssl证书信息的脚本中,是通过SSL.Context构建上下文对象的,指定使用TLSv1,但是报错是sslv3 于是我在本地测试,我本地是没有问题的,我在脚本中添加输出链接协议版本 ?...于是,我让小伙伴把域名发我,我用脚本执行,报同样的错误 在执行do_handshake,握手的时候就报错了,所以也没有输出建立连接的协议版本,没办法,只能抓包看了 ?

    3.5K10

    TLS协议分析 (五) handshake协议 证书与密钥交换

    并且,如果证书链的某些方面是不能接受的(比如证书没有被可信任的CA签署),服务器可以自行决定,是继续握手(放弃要求客户端认证),或者发送一条fatal的alert。...要注意的是,如果版本号检查失败了,PreMasterSecret 应该像下面描述的那样填充成随机数。...处理 RSA 加密的 premaster 消息失败, 2.或者版本号检查失败 时产生alert消息。当遇到这两种情况时,服务器必须用随机生成的 premaster 值继续握手。...因此得出的结果会和一些 SSLv3 的实现不兼容。实现者从 SSLv3 升级到 TLS 时,必须修改自己的实现,以接受并且生成带长度的格式。...要注意,这要求双方在握手过程中,都得缓存所有消息,或者在握手过程中,用每一种可能的hash算法计算到CeritificateVerify为止的hash值。

    1.6K20

    重识Nginx - 12 SSLTLS 浅析

    通过握手协议,通信双方协商出相同的加密套件和密钥信息,后面便可以使用协商出的结果对双方的交互报文进行加密,从而实现安全可靠的信息传递。...---- TLS 安全密码套件 ---- TLS握手过程 SSL/TLS使用证书来实现对数据的加密传输以及身份认证。...导致握手失败的一些原因 两边协议版本不兼容 两边加密算法无匹配项 如何优雅处理HTTPS中的证书问题 ---- SSL的认证方式 SSL的认证方式有3种: 单向认证。客户端认证服务器。 双向认证。...单向认证和双向认证相比,只是不需要客户端上传证书,其他没有区别。 ---- 应用场景 目前SSL/TLS应用最多的场景便是: 与HTTP结合组成HTTPS。...ssl on; ssl_certificate C:\\artisan.crt; ssl_certificate_key C:\\artisan.key; ssl_protocols SSLv3

    1.2K30

    Jexus服务器SSL二级证书安装指南

    获取服务器证书中级CA证书: 为保障服务器证书在客户端的兼容性,服务器证书需要安装两张中级CA证书(以证书签发邮件为准,部分证书产品只有一张中级证书),根证书或证书链内容,放在服务器证书内容的后边...jexus采用的是Openssl 的API,证书文件按openssl处理,涉及到二级证书的,需要把获得三张证书合并在一个证书文件里。...5.8可以设定SSL/TLS版本,默认是SSLv23,SSLv23可以同时支持SSLv3、TLSv1.0、TLSv1.1和TLSv1.2,具有比较广泛的版本兼容性。...SSLv2这个配置其实没有SSLv2对应的是sslv23,设为其它标准的值,就是具体的了,所以,如果你设为SSLv3,客户端浏览器等就必须用SSLv3与服务器交流,设为TLSv1.2,客户端就只能用TLSv1.2...的标准与服务器交流,如果客户端没有对应的版本号,就会连接失败,服务器端就会记一笔异常,说是SSLV3_GET_xxxxx的版本号错误。

    1.7K80

    传输安全HTTPS

    目前应用最广泛的 TLS 版本是 1.2,而之前的版本(TLS1.1 / 1.0、SSLv3 / v2)都已经被认为是不安全的。 TLS 综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术。...--- TLS 由记录协议、握手协议、警报协议、变更密码规范协议、扩展协议等几个子协议组成: 记录协议(Record Protocol)规定了 TLS 收发数据的基本单位是:记录(record)。...警报协议(Alert Protocol)的职责是向对方发出警报信息。收到警报的一方可以选择继续连接,也可以立即终止连接。...TLS 握手过程的简要描述:通信的双方在 TLS 握手的过程中协商 TLS 的版本号、密码套件,交换随机数、数字证书和密钥参数,最终通信的双方协商得到会话密钥。"...TLS 握手过程的简要描述:通信的双方在 TLS 握手的过程中协商 TLS 的版本号、密码套件,交换随机数、数字证书和密钥参数,最终通信的双方协商得到会话密钥。"

    53340

    浅析 HTTPS 和 SSLTLS 协议

    然而,TLS 标准并没有规定应用程序如何在 TLS 上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。...TLS记录协议提供的连接安全性具有两个基本特性: 私有——对称加密用以数据加密(DES、RC4等)。对称加密所产生的密钥对每个连接都是唯一的,且此密钥基于另一个协议(如握手协议)协商。...TLS握手协议提供的连接安全具有三个基本属性: 可以使用非对称的,或公共密钥的密码术来认证对等方的身份。该认证是可选的,但至少需要一个结点方。 共享解密密钥的协商是安全的。...然而,TLS标准并没有规定应用程序如何在TLS上增加安全性;它如何启动TLS握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。...4)一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。 5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。

    2.3K40

    国庆节前端技术栈充实计划(1):使用Nginx配置HTTPS 服务器

    MD5; ... } 服务器证书是一个公共实体,它被发送给连接到服务器的每一个客户机。私钥是一个安全实体,应该存储在具有受限访问的文件中,但它必须可被nginx主进程读取。...注意,这些指令的默认值已经 变更好几次了。 HTTPS 服务器优化 SSL操作会消耗额外的CPU资源。 在多处理器系统上,应该运行不少于可用CPU内核数的多个 工作进程。最耗CPU的操作是SSL握手。...,nginx将会启动失败并显示如下错误信息: SSL_CTX_use_PrivateKey_file(" ......http区块中放置具有多个名称的证书文件及其私钥文件,以在所有其下的虚拟主机服务器中继承其单个内存副本: ssl_certificate common.crt; ssl_certificate_key...TLS服务器名称指示扩展(SNI,RFC 6066),其允许浏览器在SSL握手期间同时发送请求的服务器名称,因此,服务器就知道它应该给这个连接使用哪个证书。

    99030

    SSL与TLS的区别以及介绍

    TLS记录协议提供的连接安全性具有两个基本特性: 私有——对称加密用以数据加密(DES、RC4等)。对称加密所产生的密钥对每个连接都是唯一的,且此密钥基于另一个协议(如握手协议)协商。...TLS握手协议提供的连接安全具有三个基本属性: 可以使用非对称的,或公共密钥的密码术来认证对等方的身份。该认证是可选的,但至少需要一个结点方。 共享解密密钥的协商是安全的。...然而,TLS标准并没有规定应用程序如何在TLS上增加安全性;它如何启动TLS握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。   ...4)一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。   5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。...TLS还对何时应该发送某些警报进行记录。

    2.4K20

    Python Web学习笔记之SSL,TLS,HTTPS

    如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。 3. 客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。 4....双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。 SSL协议的优点是它提供了连接安全,具有3个基本属性: l 连接是私有的。在初始握手定义了一个密钥之后,将使用加密算法。...TLS 记录协议提供的连接安全性具有两个基本特性:    私有――对称加密用以数据加密(DES 、RC4 等)。对称加密所产生的密钥对每个连接都是唯一的,且此密钥基于另一个协议(如握手协议)协商。...TLS 握手协议提供的连接安全具有三个基本属性:    可以使用非对称的,或公共密钥的密码术来认证对等方的身份。该认证是可选的,但至少需要一个结点方。  共享加密密钥的协商是安全的。...4)一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。 5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。

    1.2K30

    High Performance Browser Networking – TCP UDP TLS

    web server会检查SNI 中的 hostname. 并选择合适的证书, 并继续完毕握手。...现代化的浏览器会有意的等待第一个TLS连接完毕,在打开一条新的连接。 但是,在实际的工作中。使用server创建和保存session 标识符 具有局限性。...直至根文件夹信任的证书。 这过程中会有新的DNS 查询, TCP连接。 和 HTTP GET请求。 会有数百毫秒的握手延迟。 但是浏览器怎么知道怎样获取中间证书的呢?...每个子证书通常都包括了父证书的URL 相反的, 你必须在你的信任链里不会包括不是必需的证书, 或者通俗点说, 你应该降低信任链的大小。 回顾一下。 server在TLS 握手期间。...因为 s_client 不清楚root证书,我们须要手动将 StartSSL Certifiecate Authority 导入到根文件夹(很重要的一步) , 否则 s_client 会看到一个校验失败的错误日志

    41910

    HTTP与HTTPS的区别,详细介绍

    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。...目前应用的最广泛的 TLS 是 1.2,而之前的协议(TLS1.1/1.0、SSLv3/v2)都已经被认为是不安全的了 SSL/TLS协议的基本过程(TLS1.2) 客户端向服务器端索要并验证公钥。...4)一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。 5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。...TLS还对何时应该发送某些警报进行记录。...使用ECDHE算法的TLS交换过程具有如下优点:运算速度快,安全性高,还支持“False Start”,能够把握手的消息往返由 2-RTT 减少到 1-RTT 所以现在主流的服务器和浏览器在握手阶段都已经不再使用

    4.7K20

    Wireshark抓包分析SSL握手的过程

    一、就能看到完整的SSL交互的过程: 上面是TCP三次握手,三次握手之后就进入SSL握手的过程。 二、SSL握手过程 1.第一个SSL握手是客户端向服务器发起的Client Hello消息。...TLS是SSL协议的一个版本。 SSL协议版本:SSLv3,TLS1.0,TLS1.2 客户端把自己所支持的TLS版本都列在了Client Hello里面。就跟我们的加密套件是一样的。...点开这个请求可以看到: 客户端支持TLS1.0和TLS1.2,服务器从中选了一个共同都支持的版本:TLS1.2。 这是个Server Hello的握手类型。...选一个共同都支持的加密套件: 服务器从客户端发的消息里面,选了版本选了套件。都在Server Hello里面都告诉了客户端。 3.Server Hello之后,服务器发了一个证书。...点开可以看到: 在这个里面主要看的是证书。服务器可能有很多个证书。它会把这些证书都加上都发给客户端。 4.客户端拿到证书去做验证。验证完毕后生成一个本地的随机密码,并且把密码发给服务器。

    3.4K50

    10 requests处理SSL证书验证

    requests支持的证书验证方式 SSL证书验证 客户端证书验证 CA证书验证 SSL证书验证 来个大写的问题,SSL是什么,为什么在发起HTTPS请求的时候需要证书验证?...TSL.png 事实上,SSL协议分为2层,包括SSL记录协议和SSL握手协议,同时,SSL协议还包括加密算法的一些概念,嗯,太复杂了,我也编不下去了,,希望在后面的学习中,能把前面浏览的知识总结起来...SSL 验证默认是开启的,如果证书验证失败,Requests 会抛出 SSLError: >>> import requests>>> requests.get('https://github.com'...import requests from requests.packages import urllib3 # 关闭告警信息 urllib3.disable_warnings() url = 'https...image.png 总结 https请求进行ssl验证或忽略ssl验证才能请求成功,忽略方式为verify=False SSL证书是由CA机构颁发的,嗯,所以安全也是要钱的 要完全理解HTTP协议,

    1.8K10

    ssl服务器原理,SSL的工作原理

    原标题:SSL的工作原理 SSL的工作原理中包含如下三个协议: 1、握手协议 握手协议是客户端和服务器用于与SSL连接通信的第一个子协议。握手协议包括客户端和服务器之间的一系列消息。...(2)完整性:握手协议定义了MAC,用于保证消息完整性 3、警报协议 客户机和服务器发现错误时,向对方发送一个警报消息。...每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;第2个字节制定实际错误类型。...证书的工作流程 1、用户连接到你的Web站点,该Web站点受服务器证书所保护。(可由查看 URL的开头是否为”https:”来进行辩识,或浏览器会提供你相关的信息)。...2、你的服务器进行响应,并自动传送你网站的数字证书给用户,用于鉴别你的网站。 3、用户的网页浏览器程序产生一把唯一的“会话钥匙码,用以跟网站之间所有的通讯过程进行加密。

    1.4K20
    领券