1. 程式人生 > >安裝部署jasig cas server及相關實踐

安裝部署jasig cas server及相關實踐

tomcat https

jasig cas server是一個開源的單點登錄認證服務器。部署很簡單,下載後將war包放入tomcat後啟動。需要理解並解決的問題有:

一、使tomcat支持https
https協議通過ssl和數字證書來保證c/s間的數據傳輸安全。一般說來非對稱加密算法性能要低於對稱加密算法,所以ssl協議是用對稱加密算法進行信息加密的。而在雙方確立信任關系的時候需要用數字證書(非對稱加密)來相互認證和商定密鑰。那麽要使tomcat支持https,部署密鑰庫/證書這一步是少不了的。證書可以花錢買,即全球可信證書是被瀏覽器默認支持的(不出現警告提示)。舍不得花錢就用私人證書,當然把私人證書導入到可信任列表裏也可以除去警告提示(見後)



二、生成私人證書
jdk工具keytool提供了多種和密鑰庫/證書相關的功能和使用方法,詳見幫助。介紹幾個常見的操作。關於密鑰庫也可參考我另一篇博客:http://6738767.blog.51cto.com/6728767/1352239
查看默認密鑰庫裏的條目:keytool -list -keystore C:\Users\xxxx\.keystore (這裏通常是自己生成的密鑰對,查看密碼也是自己設的,忘了就看不了了)
查看jre裏的默認密鑰庫條目:keytool -list -keystore C:\Java\jre1.8\lib\security\cacerts,默認密碼是changeit。可以看到默認包含了100多個條目,當我們用java開發自己客戶端訪問https站點時,就需要在這個密鑰庫中包含對方的證書,否則會報錯。導入方法也簡單,見後。先說生成密鑰對操作:

keytool -genkeypair -alias tomcat -keyalg RSA,第一個參數要輸入tomcat啟動綁定的域名(如cas.xx.com),也即客戶端訪問的域名。
當然為了不和其他密鑰對混在一起,也可以單獨生成一個tomcat專用文件:keytool -genkeypair -alias tomcat -keyalg RSA -keystore https.keystore
得到了這個https.keystore文件,把它放到某個目錄下(假定為e:\keys),修改tomcat\conf\server.xml文件:
註釋掉這一行:<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

取消註釋並修改這一行:<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="e:/keys/https.keystore" keystorePass="123456"/>
重新啟動tomcat,訪問cas.xx.com:8443(本機),既可看到cas server部署好了。

三、修改cas server配置文件:deployerConfigContext.xml配置數據源、查詢語句、提供的用戶屬性等設定。

四、cas server通常需要為多個應用服務的。如前所述,當這些應用使用java開發時,需要將證書導入到jre中,否則不能訪問。要導入就需要先導出:
keytool -exportcert -alias tomcat -file cas.crt -storepass 123456,這樣就得到一個證書文件cas.crt,裏面包含了服務器的公鑰。導入到jre的密鑰庫中:keytool -importcert -alias tomcat -file cas.crt -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit

五、消除瀏覽器訪問此https站點的警告
將這個證書導入到本機信任列表裏。方法:運行mmc ,添加/刪除管理單元(M)... ,證書, 我的用戶賬戶,受信任的根證書頒發機構。當然從瀏覽器導入也可以,但記得位置要放對(個人-受信任的根證書頒發機構)


題外:對於沒有證書的別人https的站點,可用這個軟件portecle導出證書,再導入到受信任列表裏,也可以消除瀏覽器警告。

本文出自 “空空如也” 博客,謝絕轉載!

安裝部署jasig cas server及相關實踐