天天看點

CAS4.0 server 環境的搭建1、生成證書2、驗證服務端是否配置正确

一:不需https通路環境搭建

1、上cas的官網下載下傳cas server 官網位址:https://github.com/Jasig/cas/releases,下載下傳好後

    解壓下載下傳的 cas-server-4.0.0-release.zip 壓縮包,把cas-server-4.0.0\modules\cas-server-webapp-4.0.0.war

     重命名為cas.war

也可以到http://download.csdn.net/download/zangguangtian/10271027下載下傳,下載下傳号後

解壓下載下傳的 casServer-4.0.0.zip壓縮包,把casServer4.0.0\modules\cas-server-webapp-4.0.0.war

     重命名為cas.war

2、cas.war 放到tomcat的webapps目錄下

3、CAS 預設認證方式使用的是HTTPS協定,一般對安全性不高的話建議取消改成HTTP方式。開啟的話會經常提示證書過期、需要使用者确認等,對客戶的感覺不好,目前有需要的可以開啟

取消HTTPS協定

webapps\cas\WEB-INF\spring-configuration\warnCookieGenerator.xml ,找到如下配置

<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
        p:cookieSecure="true"
        p:cookieMaxAge="-1"
        p:cookieName="CASPRIVACY"
        p:cookiePath="/cas"/>
修改  p:cookieSecure="true" 為 p:cookieSecure="false"      

webapps\cas\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml ,找到如下配置

<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
        p:cookieSecure="true"
        p:cookieMaxAge="-1"
        p:cookieName="CASTGC"
        p:cookiePath="/cas"/>

修改  p:cookieSecure="true" 為 p:cookieSecure="false"      

webapps\cas\WEB-INF\deployerConfigContext.xml 檔案 ,找到如下配置:

<bean id="proxyAuthenticationHandler" 
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
          p:httpClient-ref="httpClient"/>

增加p:requireSecure="false"即HTTPS為不采用。
修改後為:

  <bean id="proxyAuthenticationHandler"
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
          p:httpClient-ref="httpClient" p:requireSecure="false"/>      

4、啟動tomcat ,通路  http://localhost:8085/cas  則可以看到登陸界面,4.0 之後預設是配置在 deployerConfigContext.xml 配置檔案中,可以看到使用者名密碼為 casuser/Mellon

二:配置https登入

1、生成證書

1.1   運作CMD

C:\Users\Administrator>keytool -genkey -alias tomcat -keyalg RSA -keypass change

it -storepass changeit -keystore server.keystore -validity 3000

您的名字與姓氏是什麼?

  [Unknown]:  COCO                                                              //計算機名或者域名,我是計算機名為例

您的組織機關名稱是什麼?

  [Unknown]:回車

您的組織名稱是什麼?

  [Unknown]:回車

您所在的城市或區域名稱是什麼?

  [Unknown]:回車

您所在的州或省份名稱是什麼?

  [Unknown]:回車

該機關的兩字母國家代碼是什麼

  [Unknown]:  ZH

CN=COCO, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=ZH 正确嗎?

  [否]:  y

CAS4.0 server 環境的搭建1、生成證書2、驗證服務端是否配置正确

1.2  導出證書

C:\Users\Administrator>keytool -export -trustcacerts -alias tomcat -file cas.cer

 -keystore  server.keystore -storepass changeit

儲存在檔案中的認證 <cas.cer>

生成證書的預設目錄 (win7/win8):C:\Users\Administrator  \ cas.cer  和 C:\Users\Administrator  \server.keystore

1.3  用戶端導入證書

C:\Users\Administrator>keytool -import -keystore D:\Java\jdk1.6.0\jre\lib\securi

ty\cacerts -file C:/Users/Administrator/cas.cer -alias client

輸入keystore密碼:changeit

再次輸入新密碼:changeit

所有者:CN=www.coco.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=ZH

簽發人:CN=www.coco.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=ZH

序列号:53fc2ad2

有效期: Tue Aug 26 14:36:02 CST 2014 至Sat Nov 12 14:36:02 CST 2022

證書指紋:

         MD5:14:3C:A9:BA:BB:0C:85:7C:94:9D:0F:6A:51:EF:A5:A8

         SHA1:F2:42:D4:A5:95:97:8D:78:32:C1:4F:40:AF:80:BA:BE:8C:00:4F:73

         簽名算法名稱:SHA1withRSA

         版本: 3

信任這個認證? [否]:  y

認證已添加至keystore中

這時 jdk1.6.0\jre\lib\security 目錄 會生成一個cacerts 檔案。

1.4 配置CAS伺服器

替換 tomcat /conf/server.xml 裡面的 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  這對标簽的内容。

[html]  view plain  copy

  1. <Connector className="org.apache.coyote.tomcat6.CoyoteConnector"   
  2.                          port="8443" minProcessors="5"  
  3.                          maxProcessors="75" enableLookups="true"  
  4.                          acceptCount="100"  
  5.                          protocol="HTTP/1.1" SSLEnabled="true"  
  6.                maxThreads="150" scheme="https" secure="true"  
  7.                clientAuth="false" sslProtocol="TLS"   
  8.                keystoreFile="C:/Users/Administrator/server.keystore"  
  9.                keystorePass="changeit" />  

2、驗證服務端是否配置正确

 2.1 cas-server-4.0.0-release 官網下載下傳 https://www.apereo.org/cas/download,解壓後将cas-server-4.0.0-release\cas-server-4.0.0\modules\cas-server-webapp-4.0.0.war

複制到apache-tomcat-6.0.41\webapps下面重命名為cas.war ,也可以不用重命名。

2.2 啟動Tomcat 無報錯後,浏覽 https://localhost:8443/cas/login   以預設使用者名:casuser,密碼:Mellon  登陸。

  注:cas-server-4.0.0-release 預設的驗證規則 不再是以使用者名和密碼相同就通過了,而是由

cas-server-4.0.0-release\cas-server-4.0.0\cas-server-webapp\src\main\webapp\WEB-INF\deployerConfigContext.xml的 <entry key="casuser" value="Mellon"/> 的key-value為使用者名和密碼。

CAS4.0 server 環境的搭建1、生成證書2、驗證服務端是否配置正确
CAS4.0 server 環境的搭建1、生成證書2、驗證服務端是否配置正确

2.3  登出    https://localhost:8443/cas/logout

CAS4.0 server 環境的搭建1、生成證書2、驗證服務端是否配置正确

2.4  問題

   雖然以 http://localhost:8080/cas/login 也可以登陸,是沒有https 安全認證的,無意義。

Non-secure Connection

You are currently accessing CAS over a non-secure connection. Single Sign On WILL NOT WORK. In order to have single sign on work, you MUST log in over HTTPS.

CAS4.0 server 環境的搭建1、生成證書2、驗證服務端是否配置正确