一:不需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
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1zY65kMZRlWyZFSlZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TOxcjNxMjMyEjNygDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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
- <Connector className="org.apache.coyote.tomcat6.CoyoteConnector"
- port="8443" minProcessors="5"
- maxProcessors="75" enableLookups="true"
- acceptCount="100"
- protocol="HTTP/1.1" SSLEnabled="true"
- maxThreads="150" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- keystoreFile="C:/Users/Administrator/server.keystore"
- 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為使用者名和密碼。
2.3 登出 https://localhost:8443/cas/logout
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.