Java 如何使用Tomcat配置HTTPS?
我试图将Tomcat配置为侦听HTTPS的端口443,但它不起作用。我在Java 如何使用Tomcat配置HTTPS?,java,tomcat,https,Java,Tomcat,Https,我试图将Tomcat配置为侦听HTTPS的端口443,但它不起作用。我在localhost\u access\u log.*.txt文件中没有日志,在catalina.out中也没有错误 这是我的server.xml文件: <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> <Connector port="4
localhost\u access\u log.*.txt文件中没有日志,在catalina.out中也没有错误
这是我的server.xml
文件:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/home/iis/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
首先配置密钥库
"%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA
在server.xml中反映
"%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA
-keystore \path\to\my\keystore
然后将连接器添加到server.xml文件中
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${user.home}/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>
问题在于密钥库密码,您忘记在server.xml
文件中设置该密码。您必须在httpsserver.xmlWhyorg.apache.coyote.http11.Http11NioProtocol
中的Connector
元素中将keystrepass=“changeit”
更改为keystrepass=“YOUR\u KEYSTORE\u PASSWORD”
。在Linux中,1024以下的端口需要根权限,但如果端口80为您工作,则这可能不是问题所在。“不工作”不是问题描述。相反会发生什么?你怎么知道密码不是“changeit”?因为我是这个问题的作者,在我找到的文档中,不清楚我是否必须在那里写密钥库密码!他们说将该行放在连接器中,然后将的地址更改为密钥库!我认为这是一个配置!我写这个答案是为了帮助其他人,如果他们坚持在这种情况下
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${user.home}/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>