2016-01-21 61 views
-1

我想配置Tomcat以偵聽端口443的HTTPS,但它不起作用。我沒有登錄localhost_access_log.*.txt文件,也沒有發現catalina.out錯誤。如何使用Tomcat配置HTTPS?

這是我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 
+0

爲什麼'org.apache.coyote.http11.Http11NioProtocol'? – Andremoniy

+0

@Andremoniy它最初是在那裏。應該在那裏呢? –

+0

低於1024的端口在Linux中需要root權限,但如果端口80正在爲您工作,那麼這可能不是問題。 –

回答

-1

先配置密鑰庫

"%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"/> 
+0

證據是他已經完成了這個。 – EJP

+0

@EJP:它應該工作,如果設置一切正確,你有什麼建議? – Rishabh

-1

問題是您忘記在server.xml文件中設置的密鑰庫密碼。您必須將keystorePass="changeit"更改爲keystorePass="YOUR_KEYSTORE_PASSWORD"的https Connector元素server.xml

+0

你怎麼知道密碼不是'changeit'? – EJP

+0

,因爲我是這個問題的作者,在我發現的文檔中,我不清楚我必須在那裏寫密鑰庫密碼!他們表示將該行放入Connector中,然後將地址更改爲密鑰存儲區!我認爲這是一個配置!如果堅持這種情況,我寫了這個答案來幫助別人 –