有關(guān)CAS服務(wù)器配置以及作為cas服務(wù)器客戶端程序的配置方法介紹

      由于CAS要求使用https和客戶端進(jìn)行通信,所以需要配置Tomcat支持SSL,為了實(shí)現(xiàn)SSL,一個(gè)Web服務(wù)必須對(duì)每一個(gè)接受安全連接的外部接口或者IP地址有一個(gè)相關(guān)聯(lián)的證書,數(shù)字證書的獲取一般從像verisign或者Thawte這樣的著名證書頒發(fā)機(jī)構(gòu)(Certificate Authority CA)購(gòu)買證書,或者如果身份驗(yàn)證并不很重要,比如管理員只是希望保證服務(wù)器發(fā)送和接收的數(shù)據(jù)是私有的并且不能被連接中的任何竊聽者探聽到,則可以只是使用自簽名的證書,從而省去獲取CA證書的時(shí)間和成本。此處使用自簽名證書作為客戶端與服務(wù)器端安全通信的憑證。

本節(jié)描述創(chuàng)建一個(gè)名為server.keystore的服務(wù)器keystore以及名為client.keystore的客戶端keystore。這兩個(gè)文件構(gòu)成一個(gè)密鑰對(duì)。這些文件通常是在<TOMCAT_HOME>目錄中或者在應(yīng)用程序目錄中創(chuàng)建的。

我們使用keytool工具創(chuàng)建keystore文件。可以在<JAVA_HOME>/bin目錄中找到keytool工具。

進(jìn)入到tomcat的根目錄下:

1.     生成密鑰對(duì)

keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore

在填寫第一個(gè)問題時(shí),如果是本地主機(jī):應(yīng)該寫localhost,其他問題隨便填寫。

2  將服務(wù)器證書導(dǎo)出為證書文件:

keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore
 輸入密碼(changeit):

Keytool返回下列消息:

Certificate stored in file <server.cer>

 
3 用keytool在所選的keystore文件中創(chuàng)建客戶端證書:

keytool -genkey -alias tomcat-client -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore

4 將新客戶端證書從keystore導(dǎo)出到證書文件:

keytool -export -alias tomcat-client -storepass changeit -file client.cer -keystore client.keystore

輸入keystore密碼(changeit)。Keytool將返回該消息:

Certificate stored in file <client.cer>


5  將上述步驟所得到的tomcat根目錄下server.cer以及client.cer證書文件導(dǎo)入到cacerts 文件中,
cacerts文件默認(rèn)生成在tomcat根目錄下

keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit

keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit

6 把證書導(dǎo)入到j(luò)ava信任的證書當(dāng)中。

keytool -import -trustcacerts -alias tomcat -file server.crt -keystore %java_home%/jre/lib/security/cacerts


從下載得cas-server3最新版本中找到target文件下面得cas.war,拷貝到<TOMCAT_HOME>/webapp目錄下
,修改<TOMCAT_HOME>/conf下面得server.xml文件,添加如下:

<Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="/server.keystore" keystorePass="changeit"/>

 

7 啟動(dòng)startup.bat,運(yùn)行tomcat之后,新打開得瀏覽器中輸入:https://localhost:8443即可看到安全連接對(duì)話框,選擇之后可以看到正常運(yùn)行得tomcat!

---此時(shí) ,cas服務(wù)器端配置已經(jīng)完成,只要配置客戶端之后即可通過cas認(rèn)證服務(wù)器來(lái)實(shí)現(xiàn)各個(gè)子系統(tǒng)之間得單點(diǎn)統(tǒng)一登陸!



 

客戶端配置如下:

1  打開客戶端得web.xml文件,添加如下


<!-- CAS Filters -->
 <filter>
  <filter-name>CASFilter</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://localhost:8443/cas/login</param-value>
  </init-param><!--這里的server是服務(wù)端的IP-->
  <init-param>
   <param-name>
    edu.yale.its.tp.cas.client.filter.validateUrl
   </param-name>
   <param-value>
    https://localhost:8443/cas/proxyValidate
   </param-value>
  </init-param><!--這里的serName是服務(wù)端的主機(jī)名,而且必須是-->
  <init-param>
   <param-name>
    edu.yale.its.tp.cas.client.filter.serverName
   </param-name>
   <param-value>localhost:8080</param-value><!--client:port就是需要CAS需要攔截的地址和端口,一般就是這個(gè)TOMCAT所啟動(dòng)的IP和port-->
  </init-param>
 </filter>

 <filter-mapping>
  <filter-name>CASFilter</filter-name>
  <url-pattern>/secure/*</url-pattern><!--這里的設(shè)置是針對(duì)servlets-examples的,針對(duì)jsp-examples設(shè)置為/*-->
 </filter-mapping>
 
 
 2  然后拷貝從cas-server網(wǎng)站上下載到的casclient.jar文件到客戶端的lib下面即可;




附錄:
顯示
keytool -list -v -keystore %java_home%/jre/lib/security/cacerts > t.txt
刪除
keytool -delete -alias tomcat -keystore %java_home%/jre/lib/security/cacerts -keypass changeit
只能輸入tomcat的缺省口令changeit
keytool參考
%JAVA_HOME%\bin\keytool -delete -alias tomcat -keypass changeit
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keypass changeit -keyalg RSA
%JAVA_HOME%\bin\keytool -export -alias tomcat -keypass changeit -file %FILE_NAME%
%JAVA_HOME%\bin\keytool -import -file server.crt -keypass changeit
-keystore %JAVA_HOME%/jre/lib/security/cacerts
%JAVA_HOME%\bin\keytool -import -file server.crt -keypass changeit
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -validity 365