2011-05-17 143 views
0

我想配置我的Spring應用程序以使用我從CA購買的SSL證書。我按照Tomcat 6.0 configuration的說明操作,並將密鑰導入到Tomcat密鑰庫中,並取消註釋server.xml中的SSL連接器。當我啓動Tomcat時,我在Tomcat日誌中看到端口8443上的連接器啓動,但是當我轉到https://example.com:8443或http://example.com:8443或https://example.com時(沒有空格 - 我不'沒有聲望發佈鏈接),它超時。我需要做什麼其他配置來爲我的Spring應用程序啓用SSL。我必須更改應用程序配置嗎?Tomcat/Spring SSL配置

我也想通過SSL(登錄,編輯配置文件等)只有一些URL。我如何在Spring配置中允許這個?如果我必須通過SSL訪問所有URL,那就沒問題,但不可取。我還沒有找到任何Spring特定的教程。

+0

試試這個:http://wiki.apache.org/tomcat/ HowTo#HowTo_SSL_Client_Authentication_with_Fallback_to_FORM_Authentication – 2011-05-23 05:29:38

回答

0

您需要做的是編輯server.xml文件以啓用ssl。下面是Tomcat的指導,請檢查出來:

http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

爲了編程知道,如果一個請求通過端口80或443到達時,你需要檢查由request.isSecure()返回的值。

爲了完全保護URL,我建議使用過濾器。

我不記得所有這些是如何處理的,但我不認爲你會有任何問題來獲取請求對象。

希望有所幫助。

+0

我已更新server.xml以取消註釋https連接器。這指向使用正確密碼的密鑰庫,我從Tomcat日誌中看到它。除了取消註釋端口8443上連接器的註釋之外,還需要對server.xml或應用程序進行哪些其他更改? – 2011-05-17 19:06:49

0

根據@mschonaker引用的文檔配置Tomcat後,最簡單的方法是在j_security_check中定義操作並編輯配置文件表單等,指定https:協議,例如,在Facelet中,https://# {request.serverName}:8443#{request.contextPath}/j_security_check。然後當用戶點擊登錄按鈕時,表單通過HTTPS POST,因此它們是安全的。

這會讓您進入HTTPS進行其他會話:返回HTTP但仍保持在同一會話中,只需提供指向完全指定的HTTP網址的鏈接,例如,在Facelet中,http://# {request.serverName}:8443#{request.contextPath}/某些鏈接

如果您在閱讀時想要保護其他頁面,請在web.xml中爲它們定義適當的安全約束,用戶數據約束和傳輸保證CONFIDENTIAL元素。

0

關於第二點

我也想只有某些URL通過SSL(登錄,修改個人資料等)。 ???

你能確定它通過修改CONFIGRATION在web.xml

<security-constraint> 
 
    <web-resource-collection> 
 
     <web-resource-name>securedapp</web-resource-name> 
 
     <!-- <url-pattern>/*</url-pattern> --> <!--all pages--> 
 
     <url-pattern>/yourapp/login</url-pattern> 
 
     <url-pattern>/yourapp/edit</url-pattern> 
 
    </web-resource-collection> 
 
    <user-data-constraint> 
 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
 
    </user-data-constraint> 
 
</security-constraint>

希望幫助您