背景说明:
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。
操作系统 | IE版本 | TLS1.2 |
Windows XP | IE 6 | 不支持 |
Windows XP | IE 8 | 不支持 |
Windows 7 | IE 8 | 不支持 |
Windows 7 | IE 9 | 不支持 |
Windows 7 | IE 10 | 支持 |
Windows 7 | IE 11 | 支持 |
Windows 8 | IE 10 | 支持 |
Windows 8.1 | IE 11 | 支持 |
Windows 10 | IE 11 | 支持 |
Windows 11 | IE 11 | 支持 |
(2)Mac系统
操作系统 | 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/push | open.fxiaoke.com/erp/syncdata/open/objdata/push |
www.fxiaoke.com/erp/syncdata/open/objdata/asyncpush | open.fxiaoke.com/erp/syncdata/open/objdata/asyncpush |