Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法对Tomcat 8使用HTTPS_Java_Tomcat_Ssl - Fatal编程技术网

Java 无法对Tomcat 8使用HTTPS

Java 无法对Tomcat 8使用HTTPS,java,tomcat,ssl,Java,Tomcat,Ssl,我正在尝试将HTTPS与Tomcat8一起使用。我已经按照在中提到的过程使用HTTPS,但目前我似乎无法让它工作 因为问题似乎出在keystore上,所以我列出了下面的步骤- 1. keytool -genkeypair -keyalg RSA -validity 3650 -alias tomcat 2. keytool -certreq -alias tomcat -file tomcat.csr 3. openssl req -nodes -config conf/openssl.cn

我正在尝试将HTTPS与Tomcat8一起使用。我已经按照在中提到的过程使用HTTPS,但目前我似乎无法让它工作

因为问题似乎出在keystore上,所以我列出了下面的步骤-

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中的配置:

<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连接-端口50915

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

更新#1 使用HTTPS连接器-端口50921 主机名50921的所有者未正确配置其网站。为了保护您的信息不被窃取,Firefox尚未连接到此网站。 高级信息:ssl\u错误\u无\u密码\u重叠

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

不支持的扩展类型\u 23,数据:
扩展重新协商\u信息,重新协商的\u连接:
***
我得到了导致此错误的代码:-

似乎正在将扩展类型检查为下面枚举值中的一个,但实际上不是

我无法找出设置未知扩展名的原因

我已经检查了互联网上关于这个错误的其他链接,但是推荐给其他人的事情已经完成了


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

您设置了证书吗?是的,我已经创建了证书并在浏览器中导入。您的Tomcat是否正在尝试协商SSL v3?请参见@Xvolks I将sslProtocol=“TLS”更改为sslProtocols=“TLSv1,TLSv1.1,TLSv1.2”,但仍然是相同的
keytool-list-keystore/web/home/wb10d1/.keystore
,并确保它包含
私钥条目
(而不是
trustedCert
)。
<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" />
fiddler.network.https> HTTPS handshake to hostname.domainname.com (for #4) failed. System.IO.IOException The handshake failed due to an unexpected packet format.
Unsupported extension type_23, data:
Extension renegotiation_info, renegotiated_connection: <empty>
***