出現上述界面,代表系統STEP1成功搭建。
STEP 2,使用Java Keytool工具爲系統生成HTTPS證書,併爲系統註冊
(Java Keytool相關資料可參閱:Java keytool 安全證書學習筆記), 在DOS窗體運行如下指令(建議編寫一個BAT批處理文件執行)
[quote]
cls
rem please set the env JAVA_HOME before run this bat file
rem delete alia tomcat 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=linly" -storepass changeit
(註釋:指定使用RSA算法,生成別名爲tomcatsso的證書,存貯口令爲changeit,證書的DN爲"cn=linly" ,這個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,這裏的目錄必須同Tomcat使用的jre目錄一致,不然後面Tomcat的HTTPS通信就找不到證書了)
rem list all alias in the cacerts
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
(註釋:列出jre可信任證書倉庫中證書名單,驗證先前的導入是否成功,若是導入成功,應該在列表中能找到tomcatsso這個別名,以下圖)[/quote]java
同時,在D:\Java\jdk1.6.0_04\jre\lib\security目錄下能找到「tomcatsso.crt」這個文件;在C:\Documents and Settings\Linly目錄下能找到「.keystore」文件。
知足上述條件則STEP2部署完成。
STEP 3,配置Tomcat的HTTPS服務
編輯D:\Java\apache-tomcat-6.0.14\conf下的server.xml文件,在connector的配置位置添加如下的配置:
[quote]<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="C:/Documents and Settings/new/.keystore" keystorePass="changeit"
truststoreFile="D:/Java/jdk1.6.0_04/jre/lib/security/cacerts"
clientAuth="false" sslProtocol="TLS"/>[/quote]
啓動Tomcat,訪問https://linly:8443/,出現如下界面說明HTTPS配置生效:web
STEP 4,爲HelloWorldExample程序配置CAS過濾器
訪問http://linly:8080/examples/servlets/servlet/HelloWorldExample,出現如下界面說明應用正常啓動:算法
編輯D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF下的web.xml文件,添加以下信息:
[quote]<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://Linly:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://Linly:8443/cas/serviceValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>Linly:8080</param-value>
</init-param>
</filter>
[/quote]
[quote]
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>
</filter-mapping>
[/quote]
拷貝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://linly:8080/cas/index.jsp,出現如下畫面:apache
輸入用戶名/密碼 :linly/linly(任意兩個相同的字竄),點擊「登陸」,出現如下畫面:瀏覽器
表示CAS服務器配置運行成功。
STEP 6,測試JA-SIG(CAS)部署結果
啓動Tomcat。
測試使用瀏覽器登錄如下網址:http://linly:8080/examples/servlets/servlet/HelloWorldExample,頁面將彈出如下認證框,點擊「肯定」tomcat
頁面將重定向到JA-SIG的SSO登陸認證頁面安全
輸入用戶名=密碼,如:linly/linly,則經過驗證,進入應用的入口界面,以下:服務器
細心的用戶將發現,此時的URL再也不是:
http://linly:8080/examples/servlets/servlet/HelloWorldExample,
URL的尾端帶上了一個ticket參數:
http://linly:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-2-qTcfDrdFb0bWndWgaqZD
到此,JA-SIG(CAS)服務器的初步SSO部署宣告成功。app