无法在Tomcat 8中使用HTTPS

时间:2016-03-02 12:00:39

标签: java tomcat ssl

我正在尝试将HTTPS与Tomcat 8一起使用。我已按照tomcat8-ssl-howto中提到的步骤使用HTTPS,但目前我似乎无法使用它。

因为问题似乎是密钥库,我列出了后面的步骤 -

item

以下错误记录在catalina.out中: -

1. keytool -genkeypair -keyalg RSA -validity 3650 -alias tomcat 
2. keytool -certreq -alias tomcat -file tomcat.csr 
3. openssl req -nodes -config conf/openssl.cnf -days 3650 -x509 -newkey rsa:2048 -out public/company_public.pem -outform PEM
4. openssl x509 -in public/company_public.pem -outform DER -out public/company_public.crt and then place it in docroot
5. Updated web.xml with
<mime-mapping>
<extension>crt</extension>
<mime-type>application/x-x509-ca-cert</mime-type>
</mime-mapping>
<mime-mapping>
<extension>cert</extension>
<mime-type>application/x-x509-ca-cert</mime-type>
</mime-mapping>
<mime-mapping>
<extension>pem</extension>
<mime-type>application/x-x509-ca-cert</mime-type>
</mime-mapping>
6.Imported the trusted root certificate into the web browser
7. openssl ca -batch -config conf/openssl.cnf -in tomcat.csr -out tomcat.cert
8. openssl x509 -in tomca.cert -out tomcat.crt
9. keytool -importcert -v -trustcacerts -alias companycaroot -file company_public.crt
10. keytool -import -v -alias tomcat -file tomcat.crt

由于问题在于解析HTTP请求标头,我已经更新了maxHttpHeaderSize = 99999,以确保不会导致问题。

以下是server.xml中的配置:

#|INFO|2016-03-02 21:03:30.385+1000|129|org.apache.coyote.http11.AbstractHttp11Processor.process|Error parsing HTTP request header 
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.|#

我尝试使用Fiddler调查HTTPS响应:

<Connector executor="tomcatThreadPool"
           port="50915"
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxHttpHeaderSize="99999"
           server="Test Web"
           keepAliveTimeout="90000"
           maxKeepAliveRequests="-1"
           acceptorThreadCount="40"
           redirectPort="50921" />

<Connector executor="tomcatThreadPool"
           port="50921"
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxHttpHeaderSize="99999"
           SSLEnabled="true"
           maxThreads="150"
           scheme="https"
           secure="true"
           clientAuth="false"
           server="Test Web"
           keepAliveTimeout="90000"
           maxKeepAliveRequests="-1"
           acceptorThreadCount="40"
           keystoreFile="/web/home/wb10d1/.keystore"
           keystorePass="changeit"
           allowTrace="true"
           sslProtocol="TLS" />

Firefox 44.0.2返回错误: 使用HTTP Connect - PORT 50915

连接主机名时发生错误:50915。 SSL收到的记录超过了允许的最大长度。 (错误代码:ssl_error_rx_record_too_long)

更新#1 使用HTTPS连接器 - PORT 50921 主机名:50921的所有者未正确配置其网站。为防止您的信息被盗,Firefox尚未连接到此网站。 高级信息:ssl_error_no_cypher_overlap

更新#2:添加了更多调试信息 在这里,我在catalina.out中看到以下错误: - http://pastebin.com/PTatkMQN

fiddler.network.https> HTTPS handshake to hostname.domainname.com (for #4) failed. System.IO.IOException The handshake failed due to an unexpected packet format.

我收到导致此错误的代码: - http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/sun/security/ssl/HelloExtensions.java/

似乎正在从以下枚举值中检查扩展类型,但它不是http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/sun/security/ssl/ExtensionType.java#ExtensionType.0EXT_SERVER_NAME

我无法弄清楚导致设置未知扩展名的原因。

我已经在互联网上查看了有关错误的其他链接,但其他人推荐的内容已经完成。

**注意:**我可以使用HTTP访问URL而没有任何问题。所以,问题显然在于HTTPS。

0 个答案:

没有答案