TLS自助排查及升级手册

针对TLS1.0/1.1低版本请求的自检自查、自助升级办法

背景说明:
TLS(Transport Layer Security)是一种加密协议,主要用于在计算机网络上提供安全通信,特别是在HTTPS(安全的HTTP)中,它可以确保数据在传输过程中不被窃取、篡改或伪造,从而保护用户在浏览网页时的隐私和安全。
主要功能包括:
1、数据加密:TLS通过加密技术保护数据在传输过程中的隐私,防止被未授权的第三方窃取或篡改。
2、身份验证:通过数字证书和公钥基础设施(PKI),TLS确保通信双方的身份真实可靠,防止中间人攻击。
3、数据完整性:TLS使用消息认证码(MAC)来确保数据在传输过程中未被修改,保证数据的完整性。
TLS1.0/1.1版本已被公认存在高危漏洞,目前已陆续被各家互联网厂商弃用。
因此,纷享计划于2024年11月1日不再兼容TLS1.0/1.1,调整为仅支持TLS1.2及以上,为保护好客户的数据传输安全保驾护航。

一、自检

1.客户端自检

(1)Windows

排查方法:查看下面的表格,通过操作系统和IE的版本可判断是否支持TLS1.2。
举例:比如Windows 7,访问纷享销客WEB页面,使用的浏览器是IE9,那么本次升级就会对您造成影响。
操作系统IE版本TLS1.2
Windows XPIE 6不支持
Windows XPIE 8不支持
Windows 7IE 8不支持
Windows 7IE 9不支持
Windows 7IE 10支持
Windows 7IE 11支持
Windows 8IE 10支持
Windows 8.1IE 11支持
Windows 10IE 11支持
Windows 11IE 11支持

(2)Mac系统

排查方法:查看下面的表格,通过操作系统版本可判断是否支持TLS1.2。
操作系统TLS1.2
macOS 10.12 Sierra支持
macOS 10.13 High Sierra支持
macOS 10.14 Mojave支持
macOS 10.15 Catalina支持
macOS 11 Big Sur支持
macOS 12 Monterey支持
macOS 13 Ventura支持

(3)主流浏览器

Chrome
Chrome 版本TLS 1.2
< 22不支持
22 - 28不支持
29 - 55默认支持
56 - 69默认支持
70 - 72默认支持
73 及更新默认支持
Firefox浏览器
Firefox 版本TLS 1.2
< 27不支持
27 - 31默认支持
32 - 51默认支持
52 - 59默认支持
60 - 62默认支持
63 及以后默认支持

2.对接程序、服务器自检

Java

1.通过以下命令查看服务端jdk版本
//如何查看jdk版本 java -version //该命令会显示当前安装的JDK版本,例如: java version "1.8.0_281" Java(TM) SE Runtime Environment (build 1.8.0_281-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
2.对比JDK表格,查询TLS1.2列支持情况,判断是否受到影响。例如JDK是 1.7及以下,默认不支持TLS1.2,则会受到影响
JDK 版本TLS 1.2
JDK 1.6及以下不支持
JDK 1.7不支持
JDK 8默认支持
JDK 9默认支持
JDK 10默认支持
JDK 11默认支持
JDK 12及更高默认支持

PHP

PHP TLS版本依赖OpenSSL。通过以下命令查询OpenSSL版本
//打开命令提示符(Command Prompt)。 //输入以下命令并回车: php -v //该命令会显示当前安装的PHP版本,例如: PHP 7.4.3 (cli) (built: Feb 18 2020 12:32:44) ( ZTS Visual C++ 2017 x64 ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies

NET Framework(C# VB.NET)

由于.NET Framework依赖Windows,因此TLS版本的支持情况取决于操作系统。
根据以下表格,结合您服务器的操作系统版本进行对比。例如您的服务器版本是Windows Server 2008,则默认不支持,需要进行配置启用。
操作系统版本.NET Framework版本TLS 1.2
Windows XP--不支持
Windows Vista--不支持
Windows 7--不支持
Windows 8.0--不支持
Windows 8.1>=4.6.2默认启用
Windows 10>=4.6.2默认启用
Windows Server 2008--不支持
Windows Server 2012>=4.6.2默认启用
Windows Server 2016>=4.6.2默认启用
Windows Server 2019>=4.6.2默认启用

Framework

Ruby

1.Ruby的TLS支持情况取决于安装Ruby时所用的OpenSSL库的版本,可以通过以下命令进行查询。
//打开终端。 //输入以下命令并回车: openssl version //该命令会显示当前安装的OpenSSL版本,例如: OpenSSL 1.1.1g 21 Apr 2020
2.参考OpenSSL 版本的表格判断是否受到影响。

Python

1.Python的TLS支持情况也取决于安装Python所用的OpenSSL库的版本,可以通过附录5的命令进行查询。
//打开终端。 //输入以下命令并回车: openssl version //该命令会显示当前安装的OpenSSL版本,例如: OpenSSL 1.1.1g 21 Apr 2020
2.参考OpenSSL 版本表格判断是否受到影响。
OpenSSL 版本TLS 1.2 支持
0.9.8不支持
1.0.0不支持
1.0.1支持
1.0.2支持
1.1.0支持
1.1.1支持
3.0.0支持

二、使用了openAPI接口的应用升级操作

注意事项:TLS依赖OpenSSL的应用,在升级组件/sdk时候,都需要选用与OpenSSL匹配的版本。

1. 升级前准备:

(1) 对影响应用,应用服务器进行备份,做好回滚策略。
(2) 合理安排升级时间,做到业务影响最小化。

2. 第三方应用对接(比如SAP,Kingdee等等)升级步骤:

联系应用程序的服务商,对存在低版本TLS访问的应用进行升级。

3. 自研服务升级步骤参考:

Java应用

1. 升级JDK至JDK8最新版本,重新部署应用
(1) 如无法升级Java版本,可以考虑使用第三方库,如Bouncy Castle,来提供TLS 1.2支持。(参考链接https://z.itpub.net/article/detail/A910D0371E25DD84925B194CA1DBD5A1)

PHP应用

1. 升级openSSL
2. 修改代码,强制使用TLS1.2
3. 如果PHP版本低于5.6,则需要至少升级到5.6最新版(不推荐,推荐升级至php7.2或更高版本)

.NET framework应用:

1. 参考https://learn.microsoft.com/zh-cn/mem/configmgr/core/plan-design/security/enable-tls-1-2-client

Ruby应用

1.更新 OpenSSL:你的系统上必须安装支持 TLS 1.2 的 OpenSSL 版本。大多数现代操作系统已经自带支持 TLS 1.2 的 OpenSSL 版本。
2.更新 Ruby:如果可能的话,升级到一个支持 TLS 1.2 的 Ruby 版本。Ruby 1.9.3 及更高版本支持 TLS 1.2。建议使用最新的 Ruby 版本,因为它们通常包含了更多的安全补丁和功能改进。
3.配置 Net:HTTP 使用 TLS 1.2:在你的 Ruby 代码中明确指定使用 TLS 1.2

Python应用

1. 升级OpenSSL
2. 如果是python2,升级到2.7.18
3. 如果是python3,升级到3.4 以上

4. 集成平台:

第一步:参考上述方法,升级第三方系统的组件,以支持TLS1.2及以上版本的加密协议
第二步:检查集成平台对接系统中,所调用的纷享销客接口的域名,是否存在www的接口,如存在请按下表对应修改接口。
原接口地址(待废弃)修改为新域名下的接口
www.fxiaoke.com/erp/syncdata/open/objdata/pushopen.fxiaoke.com/erp/syncdata/open/objdata/push 
www.fxiaoke.com/erp/syncdata/open/objdata/asyncpushopen.fxiaoke.com/erp/syncdata/open/objdata/asyncpush
2024-10-11
0 0