JAVA CAS單點登陸之一:搭建CAS服務器

原創做品,容許轉載,轉載時請務必以超連接形式標明文章 原始出處 、做者信息和本聲明。不然將追究法律責任。http://dba10g.blog.51cto.com/764602/1753086java

前言git

這一段時間,心血來潮研究了下CAS這個應用。對它感興趣,幾年前就有過,就是一直沒有踏實好好研究,一直是斷斷續續的紙上談兵,東看看,西看看。CAS說白了主要涉及權限認證相關,邏輯很是簡單。但真正部署起來,也不是一件容易事。我想主要緣由以下。github

  1. 因爲知名緣由,訪問官網很是有難度,系統全面地獲取資料很是難,且中文資料更少web

  2. 國內雖然已經有不少博客論壇已經分享了不少部署步驟和認證流程,但一步步真正演練起來,很是困難,對遇到的異常提到的不多。一些必要的參數,根本不提。讓後來者多走了不少彎路。況且,博客年代大可能是年代久遠了。apache

  3. 我的成功部署起來一套完整的應用,包括CAS普通模式,CAS 代理模式。居然花了5個晚上,(1)部分緣由是網上資源不靠譜。(2)涉及maven解決jar依賴關係耗時耗力,噁心。(3)想搜索遇到的異常解決方案,根本沒有文章提到。瀏覽器

我的想把本身辛苦5個晚上的經歷和異常分享出來,但願和你們一塊兒成長,你們少走彎路。本博客的重點是技術不走層面,理論講解相關的放到次要位置,但也不是不提。tomcat

準備工做安全

先須要瞭解相關的概念。服務器

  1. SSO(單點登陸)app

  2. CAS

  3. HTTPS

  4. COOKIE,SESSION

  5. 安全證書

  6. 加密解密等

環境參數

涉及的全部參數都在個人實體機(WIN7)完成的。分別安裝了3個TOMCAT服務端。

  • Tomcat6.0.36

  • JDK7

  • CAS Server版本:cas-server-3.5.3

  • CAS Client版本:cas-client-3.1.1

 

域名映射(C:\Windows\System32\drivers\etc\hosts)

1

2

127.0.0.1 hellocas1.com

127.0.0.1 hellocas2.com

主機名

zhaoguoyu-pc

 

主要內容

  1. 建立證書

  2. 部署CAS服務器

建立證書

使用java keytool證書工具(官方例子)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

 

C:\Documents and Settings\ukari>cd \program*

The filename, directory name, or volume label syntax is incorrect.

 

C:\Program Files>cd java

 

C:\Program Files\Java>cd jdk*

 

C:\Program Files\Java\jdk1.5.0_11>cd bin

 

C:\Program Files\Java\jdk1.5.0_11\bin>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA

Enter keystore password:  changeit

What is your first and last name?

  [Unknown]:  compA

What is the name of your organizational unit?

  [Unknown]:  Information Systems

What is the name of your organization?

  [Unknown]:  Pacific Disaster Center

What is the name of your City or Locality?

  [Unknown]:  Kihei

What is the name of your State or Province?

  [Unknown]:  HI

What is the two-letter country code for this unit?

  [Unknown]:  US

Is CN=compA, OU=Information Systems, O=Pacific Disaster Center, L=Kihei, ST=HI, C=US correct?

  [no]:  yes

 

C:\Program Files\Java\jdk1.5.0_11\bin>keytool -export -alias tomcat -keypass changeit -file server.crt

Enter keystore password: changeit

Certificate stored in file <server.crt>

 

C:\Program Files\Java\jdk1.5.0_11\bin>keytool -import -file server.crt -keypass changeit -keystore ..\jre\lib\security\cacerts

Enter keystore password: changeit

Owner: CN=compA, OU=Information Systems, O=Pacific Disaster Center, L=Kihei, ST=HI, C=US

Issuer: CN=compA, OU=Information Systems, O=Pacific Disaster Center, L=Kihei, ST=HI, C=US

Serial number: 462030d8

Valid from: Fri Apr 13 15:39:36 HST 2007 until: Thu Jul 12 15:39:36 HST 2007

Certificate fingerprints:

MD5: CC:3B:FB:FB:AE:12:AD:FB:3E:D 5:98:CB:2E:3B:0A:AD

SHA1: A1:16:80:68:39:C7:58:EA:2F:48:59:AA:1D:73:5F:56:78:CE:A4:CE

Trust this certificate? [no]: yes

Certificate was added to keystore

 

C:\Program Files\Java\jdk1.5.0_11\bin>

 

須要注意:

1.輸入姓名時,要輸入你及其的機器名。

2.若是你之前省生成過證書,可能會報密碼不正確相似,試一試密碼改成"changeit"
3.解釋下導入到${java_home}\jre\lib\security目錄下,證書名必須是cacerts。影響的是整個JDK環境,也就意味着影響了後來部署的tomcat app應用。剛開始,我一直沒弄明白,這一步是的具體含義。看多了博客,本身揣摩的。
4.最好備份一套本地jre環境.由於你替換了證書以後,使用maven時會報安全方面的錯誤。到時臨時切換下環境便可,省了麻煩事。

 

若是你懂得反嗆,參考連接
https://wiki.jasig.org/display/CASUM/Demo
https://wiki.jasig.org/display/CASUM/SSL+Troubleshooting+and+Reference+Guide

 

部署CAS服務器

 

(1)安裝Tomcat服務器,最好複製三分。

        略    

( 2) 開啓SSL

        打開tomcat目錄的conf/server.xml文件。

        修改內容片斷以下

 

1

2

3

4

5

6

7

   <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" 

                keystoreFile="C:\Users\Administrator\.keystore" 

                keystorePass="changeit"

                truststoreFile="D:\Java\jdk1.7.0_65\jre\lib\security\cacerts"

               />

 

參數說明:

  • keystoreFile:在第一步建立的key存放位置

  • keystorePass:建立證書時的密碼 

    這是使用的keystoreFile 參數指定的.keystore文件是上面keytool -genkey 步驟中自動生成的。該文件是個隱形文件,通常默認在個人文檔下面。

  (3) 修改端口

1

   1. <Server port="8555" shutdown="SHUTDOWN">

    2.官方文檔中能夠關閉8080端口,僅僅使用443安全端口,可是爲了我們之後與IDEA或Eclipse部署源碼,最好暴露。不然不能很好的集成。總之在IDEA工具老是這樣。

1

2

3

    <Connector port="8888" protocol="HTTP/1.1"               

     connectionTimeout="20000"                

     redirectPort="8443" />

   (4)部署cas server

 

啓動tomcat,瀏覽器輸入地址https://zhaoguoyu-pc/cas/login

wKiom1buNhjCYICyAABkIqcm5S4898.png

 

接下來:輸入用戶名/密碼。主要用戶名和密碼相同便可。能夠輸入admin/admin 或者test/test

 

wKioL1buNoaiNpdkAACJm1wyWX4048.png

 

出現這個畫面,就表示你CA 服務器安裝成功了。

 

若是沒有成功,通常主要是證書方面的問題。

1.確認證書是否使用的是機器名。

2.確認選擇的JDK。

3.最好在環境變量中不要設置TOMCAT_HOME環境變量。

4.若是Tomcat不能正常啓動,大部分是端口被佔用,請修改其餘端口。

5.確認Tomcat SSL 的protoca協議

 

 

 

 

 

 

 

 

 

 

 

本文出自 「簡單」 博客,請務必保留此出處http://dba10g.blog.51cto.com/764602/1753086

相關文章
相關標籤/搜索