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

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

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

二、生成私人證書
jdk工具keytool提供了多種和密鑰庫/證書相關的功能和使用方法,詳見幫助。介紹幾個常見的操作。關於密鑰庫也可參考我另一篇博客:http://blog.csdn.net/zjc/article/details/19035521
查看默認密鑰庫裏的條目: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導出證書,再導入到受信任列表裏,也可以消除瀏覽器警告。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章