Java 如何使用Tomcat配置HTTPS?

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

我试图将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="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
文件中设置该密码。您必须在https
server.xml
Why
org.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"/>