1. 程式人生 > >單點登入(三)cas服務端配置

單點登入(三)cas服務端配置

一、配置:

1.     jetty(或者tomcat)+SSL

2.     Jdk6

3.     cas-server版本:3.3.1

4.     cas-client版本:3.1.11

我使用的cas版本比較低,有興趣的同學可以按照官網最新的版本來配置,cas版本從開始到最新的版本內容基本上變化還是挺大的,但是我用這個版本除錯成功了,就沒換。

相應的版本可以在官方網站上下載,也可以在公司maven倉庫裡下載。

二、生成證書

我使用的證書是公司內部本來就有jettywithssl的指令碼,就直接用了,不過在這裡寫一下使用Java Keytool工具生成證書的步驟,我生成證書後在tomcat上實驗過,可以正常使用通過。在DOS窗體執行以下指令(建議編寫一個BAT批處理檔案執行)

cls
rem please set the env JAVA_HOME before run this bat file
rem delete alia jetty if it is existed
keytool -delete -alias tomcatsso -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
keytool -delete -alias tomcatsso -storepass changeit
(註釋: 清除系統中可能存在的名字為tomcatsso 的同名證書)
rem list all alias in the cacerts
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
(註釋: 列出系統證書倉庫中存在證書名稱列表)
rem generator a key
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=hadoop-IdeaPad-U310" -storepass changeit
(註釋:指定使用RSA演算法,生成別名為tomcatsso的證書,存貯口令為changeit,證書的DN為"cn=hadoop-IdeaPad-U310" ,這個DN必須同當前主機完整名稱一致哦,切記!!!)
rem export the key
keytool -export -alias tomcatsso -file $JAVA_HOME/jre/lib/security/tomcatsso.crt -storepass changeit
(註釋: 從keystore中匯出別名為tomcatsso的證書,生成檔案tomcatsso.crt)rem import into trust cacerts
keytool -import -alias tomcatsso -file $JAVA_HOME/jre/lib/security/tomcatsso.crt -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
(註釋:將tomcatsso.crt匯入jre的可信任證書倉庫。注意,安裝JDK是有兩個jre目錄,一個在jdk底下,一個是獨立的jre,這裡的目錄必須同jetty使用的jre目錄一致,否則後面jetty的HTTPS通訊就找不到證書了)
rem list all alias in the cacerts
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit 


三、配置Tomcat的HTTPS服務

編輯$CATALINA_HOME\conf下的server.xml檔案,在connector的配置位置新增以下的配置:

<Connector protocol="org.apache.coyote.http11.Http11Protocol"
           port="8443" minSpareThreads="5" maxSpareThreads="75"
           enableLookups="true" disableUploadTimeout="true"
           acceptCount="100"  maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/home/hadoop/.keystore" keystorePass="changeit"
           truststoreFile="/usr/java/jdk1.7.0_10/jre/lib/security/cacerts"
           clientAuth="false" sslProtocol="TLS"/>

四、部署cas伺服器

在cas-server-3.3.1/modules有如下jar包:


將其中的cas-server-webapp-3.3.1.war 更名為cas.war放在webapps目錄下,啟動tomcat,訪問http://localhost:8443/cas/login

輸入使用者名稱密碼:admin/admin (兩個相同的字串)

到此,伺服器的初步SSO部署宣告成功。

五、總結

其實,部署服務端的關鍵點在於證書的生成,如果公司內部有是最好不過的,證書生成之後,就是將cas的war包放在webapps裡面,執行,輸入登入的url,能夠訪問成功就可以了