CAS單點登入
[b]概述[/b]
(1)[url=http://blog.csdn.net/tch918/article/details/19930037]CAS簡介[/url]
(2)[url=http://www.jasig.org/cas]CAS官網[/url]
[b]環境配置[/b]
[list]
[*]在同一個機器上配置三個虛拟機
[*]windows7_32位
[*]JDK 1.6.0_18
[*]Tomcat 6.0.29
[*]CAS-server-3.4.11
[*]CAS-client-3.2.1
[/list]
[b]配置host[/b]
根據示範需求,用修改hosts 檔案的方法添加域名
在檔案 C:\Windows\System32\drivers\etc\hosts 檔案中添加三條
說明:
(1)demo.tch.com:對應部署cas server的tomcat,這個虛拟域名還用于證書生成
(2)app1.tch.com:對應部署app1的tomcat
(3)app2.tch.com:對應部署app2的tomcat
[b]配置JDK[/b]
[url=http://blog.csdn.net/mazhaojuan/article/details/7468639]JDK配置[/url]
[b]安全證書配置[/b]
[url=http://www.micmiu.com/lang/java/keytool-start-guide/]java keytool證書工具使用小結[/url]
(0)建立檔案夾:D:\study\sso\tomcat-cas(将tomcat解壓後改名)
[img]http://dl2.iteye.com/upload/attachment/0109/1576/b34c708f-c139-3123-9a12-025a13794eda.jpg[/img]
(1)生成服務端密鑰檔案并生成證書
a.win+r ,打開 Tomcat的安裝路徑,複制并粘貼如下指令到控制台中,回車執行
實作:
[img]http://dl2.iteye.com/upload/attachment/0109/1582/5339ef23-f1e7-3c0c-aa3e-4f295f2f944c.jpg[/img]
說明:
[list]
[*]-keypass 123456 和 -storepass 123456 兩個密碼要一緻,否則下面tomcat 配置https 通路失敗
[*]-keystore ssodemo.keystore 生成證書的名稱
[*]名字與姓氏:與要通路的域名保持一緻,通過在HOST中配置該域名,可通過域名直接通路伺服器
[*]最後一步,輸入y(YES)
[/list]
指令執行後,檢視檔案夾,多出了一個證書檔案
[img]http://dl2.iteye.com/upload/attachment/0109/1586/3387cf14-3b5b-345e-9c46-feed40e1a3db.jpg[/img]
問題解釋:
再次配置時會出現 casserver 已存在的提示,解決方式删除配置過的證書
範式:keytool -delete -alias 指定需删除的别 -keystore 指定keystore – storepass 密碼
執行指令:keytool -delete -alias casserver -keystore ssodemo.keystore -storepass 123456
(2)導出證書:
複制并執行如下指令:
控制台:
[img]http://dl2.iteye.com/upload/attachment/0109/1594/277ed4e1-4d6d-3c11-9179-2f7514d63931.jpg[/img]
檔案夾:
[img]http://dl2.iteye.com/upload/attachment/0109/1596/d4c9435e-3b92-3868-84ac-603dd5a89683.jpg[/img]
注意:
[list]
[*]-storepass 123456 為上面生成證書時設定的密碼
[*]-file ssodemo.cer 導出的證書名稱
[*]儲存檔案路徑中不能包含空格,否則指令不識别
[*]指令輸入時,單詞之間以空格間隔,否則指令不識别
[/list]
(3)用戶端導入證書
控制台
[img]http://dl2.iteye.com/upload/attachment/0109/1598/081b2b97-0410-3ad7-99a5-e2424f755a3c.jpg[/img]
檔案夾:
[img]http://dl2.iteye.com/upload/attachment/0109/1600/f58441f1-44ed-33e9-8a7e-06a8f38e3992.jpg[/img]
以上tools工具的使用:
[url=http://dylanxu.iteye.com/blog/1871337]用戶端伺服器端配置[/url]
問題解釋:若提示密碼不正确,将密碼改為changeit 再試
問題參考:[url=http://blog.csdn.net/shenzhen_mydream/article/details/5662372]keytool工具java.io.IOException: Keystore was tampered with, or password was incorrect 異常的解決辦法 [/url]
[b]CAS Server端配置[/b]
(1)配置HTTPS
打開 Tomcat 安裝目錄 conf\server.xml
找到并修改如下代碼
在制作完成密鑰檔案、證書檔案、密鑰庫檔案後即可進行服務端Tomcat的配置。打開$CATALINA_HOME/conf/server.xml檔案,注釋掉如下代碼段:
<Connector port="80"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
并取消注釋<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"…/>代碼段
此處參考:[url=http://dylanxu.iteye.com/blog/1871337]CAS單點登入學習筆記四之HTTPS 單向認證方式 服務端和用戶端配置[/url]
說明:
[list]
[*]keystoreFile 是建立證書的路徑
[*]keystorePass 是建立證書的密碼
[*]port一般為8443或443,最常用的是443端口(https預設端口),這樣https方式通路的時候可以不加端口号(如:https://sso.demo.com/cas/login);keystoreFile為tomcat目錄下的密鑰檔案;keystorePass為私鑰密碼;truststoreFile為生成的信任檔案,如果此處不指定則預設為$JAVA_HOME/jre/lib/security/cacerts檔案;其它屬性預設即可
[/list]
注意:若設定為8443端口,要在域名後面添加上端口号
https://demo.tch.com:8443/cas/login
要配置truststoreFile為tomcat下的cacerts檔案
另外浏覽器使用谷歌浏覽,否則登陸https://sso.demo.com/cas/login時無響應
提示是否通路,點選是
[img]http://dl2.iteye.com/upload/attachment/0110/6018/de566aae-8cd0-30c4-a759-f13d50a7f1dd.jpg[/img]
[b]生成用戶端密鑰庫檔案[/b]
單向認證的用戶端配置隻需生成用戶端信任檔案caserts即可。首先将服務端生成的證書檔案(之前生成的casserver.cer檔案)複制到$JAVA_HOME/jre/lib/security下,然後打開CMD視窗切換到$JAVA_HOME/jre/lib/security下并執行指令:
需要制定ssodemo.cer的具體路徑 注意使用/而非\
控制台:
[img]http://dl2.iteye.com/upload/attachment/0109/1606/65130fd5-42fd-3bbb-8586-62e65902e79f.jpg[/img]
檔案夾:
[img]http://dl2.iteye.com/upload/attachment/0109/1604/3bd1b8b5-8b61-3df9-920a-12bb8ceac668.jpg[/img]
說明:
(1)JDK JRE security storepass 預設密碼 changeit
(2)ssodemo.cer 檔案為之前配置的檔案,若執行指令時出現找不到檔案的錯誤,仔細檢查檔案存放路徑
配置HOST後
通路:
[url]http://localhost:8081/cas/login[/url]
或通過域名通路
http://demo.tch.com:8081/cas/login
[img]http://dl2.iteye.com/upload/attachment/0109/1673/1454b8be-8b64-35cc-ad3e-c140575a13df.jpg[/img]
博文參考:
[url=http://dylanxu.iteye.com/blog/1871337]CAS單點登入學習筆記四之HTTPS 單向認證方式 服務端和用戶端配置[/url]
[url=http://blog.csdn.net/tch918/article/details/19930341] 基于CAS實作單點登入(SSO):執行個體講解 [/url]