https站点强制通信协议TLSv1.2

https站点强制通信协议TLSv1.2
现在⽹络安全原来越重要,好多公司⽹站需要ssl⽀持,也就是要求客户通过https访问公司站点,由于TLSv1.1容易被⿊客攻击,
于是很多企业要求站点只提供TLSv1.2协议⽀持。
对Java 程序,TLSv1.2的实现中, oracle 从JDK1.7 update96以后的版本才开始⽀持,IBM JDK 采⽤的是类似的⽅案。只有
从JDK1.8开始才是默认⽀持的。
bugs.openjdk.java/browse/JDK-7093640
www.java/en/configure_crypto.html#enableTLSv1_2
/index.php/Manual:Ciphers(1) 参见TLSv1.2⽀持的cipher list.
TLSv1.2协议⽀持具体要分三部分内容。
<⼀>服务器对TLSv1.2的⽀持。
具体要看服务器采⽤的是那种服务器,这⾥主要讲Apache web server 和Tomcat 为基础的web 服务器。
Apache web server:
更新⽂件 f于如下路径:WebServer/conf/extra/
做如下更改:
#Limit Protocol to TLSv1.2
SSLProtocol +TLSv1.2
#Update cipher suites to remediate variousencryption related vulnerabilities
SSLHonorCipherOrder On
SSLCipherSuiteECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-
AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:E
CDHE-ECDSA-
AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-
GCM-SHA256:AES256-SHA256:AES128-SHA256
地震烈度表Tomcat:
更新⽂件 f ⽂件于如下路径
Tomcat/conf/ (Windows) or the setenv.shscript file (UNIX) with the following modifications:
·        添加参数 -Djdk.tls.client.protocols=TLSv1.2 在 Java Virtual Machine (JVM) arguments.
针对AIX 环境参数变为-Dcom.ibm.jsse2.overrideDefaultProtocol="TLSv12".
·      如果Tomcat 配置了TLS , 更新⽂件 l 在如下路径
Tomcat/conf/, 如下. 在<Connector> 定义中, 更改 ciphers 和 sslProtocols 参数如下:幸福双响炮
ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TL
索拉非尼
<⼆>客户端设置对TLSv1.2的⽀持
现代浏览器对TLS 1.2 默认⽀持的版本如下:
Firefox: Next 6 months (either version 27 or 28)
IE version 11
Google Chrome 31
Opera 18 on Windows
Safari 7.0 on Mac
①.打开Control Panel,查看Java⽀持的TLS版本
②.⾼级。拉到最下⾯。
为了你的浏览器在访问时不弹出不安全访问访问提⽰,你需要在浏览器中导⼊客户端证书。
<;三>客户端默认通过TLSv1.2访问设置。
本⽂以httpClient 4.5.1为例,特别讲述了怎么让客户端程序强制通过TLSv1.2通信的代码修改。
01. import org.apache.http.impl.client.DefaultHttpClient;
02.
03. public class SSLClient extends DefaultHttpClient {
04. public SSLClient() throws Exception {
05. super();
工程管理
06.            SSLContext ctx = Instance("TLSv1.2");
07.            X509TrustManager tm = new X509TrustManager() {
08. @Override
09. public void checkClientTrusted(X509Certi<a target=_blank target="_blank" href="superuser/questions/747377/enable-
tls-1-1-and-1-2-for-clients-on-java-7">superuser/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-
java-7</a>ficate[] chain, String authType) throws CertificateException {
10.                }
11.
12. @Override
13. public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
14.                }
15.
16. @Override
17. public X509Certificate[] getAcceptedIssuers() {
18. return null;
19.                }
20.            };
21.            ctx.init(null, new TrustManager[] { tm }, null);
22.            org.ssl.SSLSocketFactory ssf = new org.ssl.SSLSocketFactory(ctx,
23.                    org.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
24.            ClientConnectionManager ccm = ConnectionManager();
25.            SchemeRegistry sr = SchemeRegistry();
26.            sr.register(new Scheme("https", 443, ssf));
27.        }
28.    }
为了测试需要你可以通过如下代码来测试你的客户端环境,看你的客户程序可以采⽤的协议:
01. public static void main(String[] args) throws Exception {
02.        SSLContext context = Instance("TLS");
03.        context.init(null, null, null);
04.
05.        SSLSocketFactory factory = (SSLSocketFactory) SocketFactory();
06.        SSLSocket socket = (SSLSocket) ateSocket();
07.
08.        String[] protocols = SupportedProtocols();
09.
任丘四中10.        System.out.println("Supported Protocols: " + protocols.length);
11. for (int i = 0; i < protocols.length; i++) {
12.            System.out.println(" " + protocols[i]);
13.        }
14.
15.        protocols = EnabledProtocols();
16.
17.        System.out.println("Enabled Protocols: " + protocols.length);
18. for (int i = 0; i < protocols.length; i++) {
19.            System.out.println(" " + protocols[i]);
青于蓝高考语文核按钮
20.        }
21.
22.    }

本文发布于:2024-09-22 15:42:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/230961.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:访问   客户端   站点   测试   要求
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议