升级到 jre 1.7 update 40 导致无法启动 Tomcat 7.0.37 和 7.0.42 主页并进行客户端身份验证

升级到 jre 1.7 update 40 导致无法启动 Tomcat 7.0.37 和 7.0.42 主页并进行客户端身份验证

在 Windows Server 2008 上,Tomcat 7.0.37 和 JRE 7 update 21 使用以下 server.xml 文件条目进行客户端身份验证运行良好:

<Connector port="8443" crlFile="conf/mvca.crl" truststoreType="JKS"  truststorePass="changeit" truststoreFile="c:/program files/java/jre7/lib/security/cacerts" keystorePass="maxview" keystoreFile="conf/mvkey.ks" sslProtocol="TLS" clientAuth="true" secure="true" scheme="https" maxThreads="150" SSLEnabled="true" protocol="HTTP/1.1"/>

升级到 JRE 7 update 40 后,我无法再打开 https:/mymachine.mydomain.com:8443 上的 tomcat 主页

使用 JRE 7 update 40 和 Tomcat 7.0.42 时我看到同样的错误。

没有HTTP错误代码。显示的错误信息为:Internet Explorer无法显示网页

Tomcat7 服务启动。

如果关闭客户端身份验证,主页将会运行。

我在 Tomcat 日志中没有看到任何相关的错误消息。

我可以采取哪些步骤来进一步阐明该问题并确定根本原因?

答案1

我想知道这是否与更新 40 RSA 密钥中的某些加密更改有关 <1024 已被禁用。

摘自发行说明:

http://www.oracle.com/technetwork/java/javase/7u40-relnotes-2004172.html#newft

默认 x.509 证书具有更长的密钥长度 从 7u40 开始,使用长度小于 1024 位的 RSA 密钥的 x.509 证书受到限制。此限制通过 Java 安全属性 jdk.certpath.disabledAlgorithms 应用。jdk.certpath.disabledAlgorithms 的默认值现在如下:

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024 为了避免兼容性问题,建议使用 RSA 密钥小于 1024 位的 X.509 证书的用户使用更强的密钥更新其证书。作为一种解决方法,用户可以通过安全属性 jdk.certpath.disabledAlgorithms 调整密钥大小以允许更小的密钥大小,但风险自负。

节目之间的快速差异$JAVA_HOME/jre/lib/security/java.security

$ diff java.security /opt/jdk1.7.0_21/jre/lib/security/java.security

149,152c149,150
<                com.sun.org.apache.xml.internal.security.,\
<                com.sun.org.glassfish.,\
<                org.jcp.xml.dsig.internal.,\
<                oracle.jrockit.jfr.
---
>                com.sun.org.glassfish.
>
186,189c184,185
<                    com.sun.org.apache.xml.internal.security.,\
<                    com.sun.org.glassfish.,\
<                    org.jcp.xml.dsig.internal.,\
<                    oracle.jrockit.jfr.
---
>                    com.sun.org.glassfish.
>
402c398
< jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
---
> jdk.certpath.disabledAlgorithms=MD2



jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

奇怪的是没有日志表明出了什么问题。

相关内容