SSL不适用于Tomcat 8

Jav*_*eek 10 java ssl https tomcat

我正在尝试为tomcat 8配置SSL(https),并且已完成以下步骤,但仍无法正常工作

1)使用创建密钥库文件

keytool -genkey -alias myservername -keyalg RSA
Run Code Online (Sandbox Code Playgroud)

2)生成CSR如下

keytool -certreq -alias myservername -file C:\tomcat_ssl\local_machine\test.csr -keystore C:\tomcat_ssl\local_machine\test.keystore
Run Code Online (Sandbox Code Playgroud)

3)然后我们生成证书,然后导入链证书和证书,如下所示

keytool -import -alias root -keystore C:\tomcat_ssl\local_machine\test.keystore -trustcacerts -file C:\tomcat_ssl\local_machine\srv_chain.cer

keytool -import -alias myservername -keystore C:\tomcat_ssl\local_machine\test.keystore -file C:\tomcat_ssl\local_machine\srv_main.cer
Run Code Online (Sandbox Code Playgroud)

4)最后在tomcat server.xml中进行了如下更改

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:\tomcat_ssl\local_machine\test.keystore" keystorePass="123" keystoreAlias="myservername"/>
Run Code Online (Sandbox Code Playgroud)

重新启动tomcat,它不工作并显示在屏幕下方

访问tomcat https时出错

在Tomcat的日志它没有显示任何错误,也是我试过其他选项,如保持cipher在连接标签Enabled TLS 1,2,3,更改HTTPS端口等无济于事.

此外,我测试了https端口443,它显示为我在netstat时的监听.知道为什么这不起作用

在tomcat中启用ssl调试后添加了日志

http-nio-443-exec-5, fatal error: 10: General SSLEngine problem
javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled
http-nio-443-exec-5, SEND TLSv1.2 ALERT:  fatal, description = unexpected_message
http-nio-443-exec-5, WRITE: TLSv1.2 Alert, length = 2
http-nio-443-exec-5, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled
http-nio-443-exec-5, called closeOutbound()
http-nio-443-exec-5, closeOutboundInternal()
[Raw write]: length = 7
Run Code Online (Sandbox Code Playgroud)

小智 0

Tomcat 可以使用两种不同的 SSL 实现:

JSSE 实现作为 Java 运行时(自 1.4 起)的一部分提供 APR 实现,默认情况下使用 OpenSSL 引擎。确切的配置细节取决于所使用的实现。如果您通过指定 generic protocol="HTTP/1.1" 配置连接器,则会自动选择 Tomcat 使用的实现。如果安装使用 APR - 即您已经安装了 Tomcat 本机库 - 那么它将使用 APR SSL 实现,否则它将使用 Java JSSE 实现。

有关配置的所有详细信息,请参阅https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html 。我只需按照步骤操作即可,它对我有用。

最重要的是,您确定您的 tomcat 有问题吗?您的错误可能来自您的浏览器。

  • 您是否尝试过除 IE 之外的其他浏览器?
  • 您使用的是哪个版本的 IE?
  • Windows 7 还是 Windows 8?

如果您仅在 IE 中遇到此问题,请同时检查“高级设置”下的 SSL 2.0 和 SSL 3.0,以及打开 TLS 1.0、TLS 1.1 和 TLS 1.2 的建议修复方法。