實驗背景:
系統環境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1
主機完整名稱: victor-pc
瀏覽器: FireFox V2.0.0.11html
實驗步驟:
STEP 1,搭建Java Web服務器環境
安裝 JDK + Tomcat 6.0.14 , HTTP端口8080 , HTTPS端口8443
JAVA_HOME = D:\Java\jdk1.6.0_04
CATALINA_HOME = D:\Java\apache-tomcat-6.0.14
安裝完畢,啓動Tomcat ,在瀏覽器上 測試 http://victor-pc:8080/ ,如何出現一隻小貓就說明能夠正常訪問。
STEP 2,使用Java Keytool工具爲系統生成HTTPS證書,併爲系統註冊
(Java Keytool相關資料可參閱:Java keytool 安全證書學習筆記), 在DOS窗體運行如下指令(建議編寫一個BAT批處理文件執行)
1.生成證書
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=victor-pc" -keystore c:\keys -storepass changeit
參數說明:
-genkey表示要建立一個新的密鑰
-dname表示密鑰的Distinguished Names,
CN=commonName
OU=organizationUnit
O=organizationName
L=localityName
S=stateName
C=country
Distinguished Names代表了密鑰的發行者身份
-keyalg使用加密的算法,這裏是RSA
-alias密鑰的別名
-keypass私有密鑰的密碼
-keystore 密鑰保存在C:\keys
-storepass 存取密碼,這裏設置爲changeit,這個密碼提供系統從mykeystore文件中將信息取出 java
2.導出證書
keytool -export -file c:/tomcatsso.crt -alias tomcatsso -keystore c:/keys -storepass changeit
註釋: 從keystore中導出別名爲tomcatsso的證書,生成文件tomcatsso.crt
3.導入證書
keytool -import -file c:/tomcatsso.crt -alias tomcatsso -keystore c:/cacerts -storepass changeit
註釋:將tomcatsso.crt導入jre的可信任證書倉庫。注意,安裝JDK是有兩個jre目錄,一個在jdk底下,一個是獨立的jre,這裏的目錄必須同Tomcat使用的jre目錄一致,不然後面Tomcat的HTTPS通信就找不到證書了
(在上面導入的時候出現了一個問題,因爲javahome的路徑中有空格,在導入的時候會出現 Files不是合法命令的錯誤,沒辦法只好把cacerts這個證書從javahome下拷到 c: 下,導入成功後,再複製到C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\security下)
4.查看證書是否成功導入
STEP 3,配置Tomcat的HTTPS服務
編輯D:\Java\apache-tomcat-6.0.14\conf下的server.xml文件,web
去掉此文件83到93行之間的註釋,修改成:
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="c:/keys"
keystorePass="changeit"/>
啓動Tomcat,訪問https://victor-pc:8443/,出現一隻小老虎說明HTTPS配置生效;
STEP 4,爲HelloWorldExample程序配置CAS過濾器
訪問http://victor-pc:8080/examples/servlets/servlet/HelloWorldExample,出現
Hello World!
界面說明應用正常啓動:
編輯D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF下的web.xml文件,添加以下信息:
拷貝casclient.jar文件到目錄D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF\lib下。
因爲咱們使用的是Tomcat6.0.14,所以,還要拷貝commons-logging-1.0.4.jar到該目錄下。
STEP 5,部署JA-SIG(CAS)服務器
拷貝cas.war到D:\Java\apache-tomcat-6.0.14\webapps目錄下。啓動Tomcat,訪問網址http://victor-pc:8080/cas/index.jsp,出現如下畫面:
輸入用戶名:admin 密碼:admin,點擊登陸,出現登陸成功說明CAS服務器配置運行成功。
STEP 6,測試JA-SIG(CAS)部署結果
啓動Tomcat。
測試使用瀏覽器登錄如下網址:http://linly:8080/examples/servlets/servlet/HelloWorldExample,頁面將彈出如下
SSO登陸認證界面:
輸入用戶名=密碼,如:admin/admin,則經過驗證,進入應用的入口界面,以下:
HELLO WORD!
細心的用戶將發現,此時的URL再也不是:
http://victor-pc:8080/examples/servlets/servlet/HelloWorldExample,
URL的尾端帶上了一個ticket參數:
http://victor-pc:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-1-fFeHVaBvw11tDnCfdESr
到此,JA-SIG(CAS)服務器的初步SSO部署宣告成功