Tomcat6+JDK6如何加固,解决Logjam attack,

最近更新了最新版浏览器的同学是不是偶尔会遇到SSL加密协议不灵,访问不了的情况?

最典型的例子是使用FF39或38.0.2访问某些网站时报错:Error code: ssl_error_weak_server_ephemeral_dh_key

这是由于你的客户端(FF39)废弃了DHE、RC4密码,而服务器端默认使用DHE、RC4加密的密钥尝试与客户端进行通信,结果客户端就报错了。

解决办法:

1、首先你要确保你的密钥(证书)加密长度>1023bit,因为<1023bit FF会认为不安全。自签名证书的,自己去看看怎么把key size设置为1024或大于1024。如果是CA机构签名的,就需要去CA机构申请重新签名更换证书。

2、服务器SSL设置中,要disable DHE cipher suites,要disable TLSv2 TLSv3,启用TLSv1,TLSv1.1,TLSv1.2。

3、服务器SSL设置中还要明确指定可以使用的cipher suites。如果是tomcat6+JDK6,那么以下cipher suites可用:

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA

TLS_ECDH_RSA_WITH_AES_256_CBC_SHA

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA

TLS_ECDH_RSA_WITH_AES_128_CBC_SHA

TLS_ECDH_ECDSA_WITH_RC4_128_SHA

TLS_ECDH_RSA_WITH_RC4_128_SHA

TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA

TLS_RSA_WITH_AES_256_CBC_SHA

TLS_RSA_WITH_AES_128_CBC_SHA

配置例子:

打开tomcat的server.xml,参考以下配置:

<Connector protocol="org.apache.coyote.http11.Http11Protocol" URIEncoding="UTF-8" port="9090" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" protocols="TLSv1,TLSv1.1,TLSv1.2" keystoreFile="k.keystore" keystorePass="a123456" truststoreFile="k.keystore" truststorePass="a123456" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA"/>

参考资料:

https://developer.mozilla.org/en-US/Firefox/Releases/39/Site_Compatibility

https://weakdh.org/

https://weakdh.org/sysadmin.html

https://weakdh.org/logjam.html

https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

时间: 2024-08-16 16:06:12

Tomcat6+JDK6如何加固,解决Logjam attack,的相关文章

安装tomcat出现failed to install tomcat6 service错误及解决方法(转载)

安装安装版tomcat会出现failed to install tomcat6 service ,check your setting and permissio的概率是非常低的,但是最近楼主就老出现这种问题- -. 让我郁闷了好些时间.最后才发现我原来装过tomcat,而删除它时,只是简单的删除了它的文件夹,并没有删除服务里的tomcat服务,因此才出现上面的安装错误. 解决方法:      1.打开cmd,执行sc delete tomcat5(或者是tomcat6,看你的版本了),这样删除

Centos6服务器部署JavaWeb项目(tomcat6+jdk6)

本博客介绍腾讯云服务器的Centos6系统部署JavaEE项目 安装Tomcat6 yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps tomcat6-docs-webapp tomcat6-javadoc 安装Mysql,安装过程会有设置密码的提示,注意记住密码 yum -y install mysql mysql-server mysql-connector-odbc mysql-devel libdbi-dbd-mysq

记录一次解决httpcline请求https报handshake_failure错误

概述 当使用httpclinet发起https请求时报如下错误: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:1

最近碰到的一些 SSL 问题记录

最近碰到一些 SSL 的小问题,特记录下. 我们有个 Java 实现的 SSL TCP 服务端,为客户端(PC.Android 和 iOS)提供 SSL 接入连接服务.最近有用户反馈其手机上 App 不能正常连接登录,别人手机上都可以.经过单独回访调查该用户使用的手机操作系统是 Android 6.0,经搜索了解了 Android 6.0 之后 Google 使用了自家的 BoringSSL 替换了原来的 OpenSSL,怀疑是这里在捣鬼. 继续搜索类似问题解决方案,在参考[1] 中找到答案:

java.lang.IllegalArgumentException: Comparison method violates its general contract!

背景 16号为了统一线上服务器运行环境,将两台服务器的Tomcat6+JDK6升级到Tomcat7+JDK7,本以为很简单的事情,升级后自己验证也没问题,没想到却悲剧了.升级后,过了半小时运营就找过来反馈问题,部分角色无法登陆系统,由于异常日志没有输出,没有找到问题,无奈回滚.今天我们就来说说JDK6升级到JDK7会遇到的坑.本文为了方便搜索,就直接以异常信息作为文章标题了. 复现 回滚后,到beta环境按照线上的权限配置,复现该问题,加上了error日志输出,输出了文章标题的异常,这个异常是在

Comparison method violates its general contract!

今天一个群里哥们儿碰到一个异常,抛到群里求解答,他的代码如下图: 抛出的异常信息为: Java代码   java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeHi(TimSort.java:868) at java.util.TimSort.mergeAt(TimSort.java:485) at java.util.TimSor

Java Web项目报错java.lang.NullPointerException at org.apache.jsp.front.index_jsp._jspInit(index_jsp.java:30)

环境:myeclipse+tomcat6+jdk6 今天搭建了一个Java Web项目,访问index.jsp时报如下错误: 严重: Servlet.service() for servlet jsp threw exceptionjava.lang.NullPointerException    at org.apache.jsp.front.index_jsp._jspInit(index_jsp.java:30)    at org.apache.jasper.runtime.HttpJs

一分钟内让你理解什么是产品经理?

前几天在某论坛上看见一个段子,生动形象地描绘出了产品经理.程序员.需求者三者之间那无以言表的关系图.看完这个段子也深刻体会到今年刚上线的大大神平台责任重大,该平台主要以产品经理为特色推出,平台又要怎样为三者之间创造出一个和谐共处的环境,让我很是期待! 1.刘大爷有块地,想盖个平房养老,聘请小明全权负责盖房事宜.小明画好图纸,聘请工人老王盖房,计划工期一个月. --原始需求 2.老王买好了材料,打好地基,盖了两星期,墙垒了2米多高.--技术架构 3.大爷突然想到既然地皮固定就这么大了,我为什么不盖

Java String.substring内存泄露?

String可以说是最常用的Java类型之一了,但是最近听说JDK6里面String.substring存在内存泄露的bug,伙惊呆!一起来看看到底是啥情况吧. 这个是可以导致Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 的代码: public class TestGC {     private String largeString = new String(new byte[100000