2011-09-20 150 views
5

我的第一個問題 - 是不是可以使用https而不使用數字證書? 我的第二個問題 - 我在我的web應用程序中確保了幾頁。因此,添加以下內容配置Tomcat以使用SSL

<security-constraint> 
    <web-resource-collection> 
     ...... 
    </web-resource-collection> 
    <auth-constraint> 
     ...... 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

我試着運行該應用程序,並且啓用了ssl的頁面未加載。所以我繼續創建證書。在server.xml中添加了以下內容?

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
     maxThreads="150" 
     scheme="https" 
     secure="true" 
     keystoreFile="C:\Program Files\apache-tomcat-7.0.11-windows-x86\apache-tomcat-7.0.11\.keystore" 
     keystorePass="johneipe" 
     clientAuth="optional" 
     sslProtocol="TLS" /> 

仍然我無法訪問這些頁面,也沒有https://localhost:8443

+0

這不適用於公共互聯網應用。這是測試。 – John

+0

另外我創建了keytool -genkey -alias tomcat -keyalg RSA -validity 100'的密鑰,並將.keystore文件複製到上面提到的目錄中。 – John

回答

9

您的協議更改爲 protocol="org.apache.coyote.http11.Http11Protocol"

這將解決這一問題。

+0

爲什麼?指定org.apache.coyote.http11.Http11Protocol和http/1.1之間有什麼區別? – Kevin

+0

@Kevin,值'HTTP/1.1'表示SSL實現將由Tomcat選擇。如果啓用APR,那麼Tomcat更喜歡APR實現。但是,屬性keystoreFiles,keystorePass是爲JSSE配置保留的。值'org.apache.coyote.http11.Http11Protocol'意味着您要使用與您的配置一致的JSSE實現。 – Hubert

6

你使用什麼格式的keystore?我相信Tomcat配置中的默認值是JKS,但如果您使用的是PKCS#12(.p12或.pfx擴展名),則需要指定。
請注意keystoreType =「PKCS12」。

<Connector port="1443" 
      maxThreads="200" 
      enableLookups="false" disableUploadTimeout="true" 
      acceptCount="100" debug="0" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" SSLEnabled="true" 
      keystoreFile="/opt/companyName/tomcat.keystore" 
      keystoreType="PKCS12" 
      keystorePass="password" 
      ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA" 
      URIEncoding="UTF-8" 
     /> 
+0

我必須使用默認設置。我沒有改變任何設置,事實上我不知道它是什麼意思.. – John

+0

您是否在日誌文件中看到任何錯誤,指出可能是什麼問題?查看catalina.err的日誌目錄。 –

+0

'沒有指定證書文件或無效的文件格式' – John