安裝 CAS 服務器

jopen 10年前發布 | 52K 次閱讀 CAS OpenID/單點登錄SSO

1 下載 CAS 服務器

可以從 CAS 官網:http://www.jasig.org/cas 下載,這可能需國內或許不能訪問,如果你不太愿意KX上網的話,可以訪問這個地址:http://downloads.jasig.org/cas/同樣可以下載。

  1. 下載 CAS 服務器最新版:cas-server-3.5.2-release.zip

  2. 解壓程序包

  3. 復制 cas-server-3.5.2/modules/cas-server-webapp-3.5.2.war 到 Tomcat 的 webapps 目錄下,并重命名為 ROOT.war。

在啟動 Tomcat 之前,還需要做兩件事情:

  1. 創建 CAS 密鑰庫

  2. 使 Tomcat 支持 HTTPS

2 創建 CAS 密鑰庫

使用 JDK 的 keytool 命令生成密鑰庫(keystore),其實就是一份 keystore 文件,keystore 必須通過密碼才能訪問。

keystore 里包含了多個密鑰對(keypair),每個 keypair 都有一個別名(alias),alias 必須保證唯一性,而且都有一個密碼,有此可知,keystore 與 keypair 都有自己的密碼。

JDK 也有自己的 keystore,位于 %JAVA_HOME%\jre\lib\security\cacerts,其密碼就是 changeit,當然也可以通過 keytool 命令來修改。

我們首先生成 keypair 及其存放 keypair 的 keystore,然后從 keystore 里導出證書,最后將證書導入 JDK 的 keystore 里,Tomcat 在運行時就會自動讀取 JDK 的 keystore,以確保所部署的應用可以享受 HTTPS 協議(SSL 通道)帶來的安全性。

2.1 生成 keypair

使用以下命令生成密鑰對:

keytool -genkeypair -alias cas -keyalg RSA -storepass changeit

安裝 CAS 服務器

默認情況下,生成的 keystore 就是用戶目錄下的 .keystore 文件。對于 Win8 而言,默認的用戶目錄為 C:\Users\用戶名。

以上命令執行完畢后,會在用戶目錄下生成一份 .keystore 文件(如果以前不存在該文件的話),其中包括一個 keypair。

注意:

  1. 為了簡化操作,建議 keystore 與 keypair 的密碼相同,且均為 changeit。

  2. 提示“您的名字與姓氏是什么?”,這里需要輸入一個域名,例如:www.xxx.com,本例中輸入 cas 需要在 hosts 文件中做如下映射:

    127.0.0.1 cas

查看 keypair:

keytool -list -storepass changeit

刪除 keypair:

keytool -delete -alias <別名> -storepass changeit

2.2 從 keystore 中導出證書

使用以下命令導出證書:

keytool -exportcert -alias cas -file cas.crt -storepass changeit

生成的證書文件為 cas.crt,位于運行該命令所在的當前目錄下。

可雙擊該證書文件,將該證書安裝到“受信任的根證書頒發機構”中,這樣在瀏覽器中使用 HTTPS 協議訪問時才不會出現一個紅色的叉叉。

2.3 導入證書到 JVM 中

使用以下命令導入證書到 JVM 的 keystore 中:

keytool -importcert -alias cas -file cas.crt -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -noprompt

默認情況下,Tomcat 將讀取 JVM 中的密鑰庫,而不是用戶目錄下的 .keystore 密鑰庫,當然也可以配置 Tomcat 使其讀取指定的密鑰庫(見附錄)。

注意:

  1. 在執行以上命令前,必須需要保證 cacerts 文件對當前用戶有寫權限。

  2. JDK 的 keystore 的密碼必須為 changeit,這樣 Tomcat 無需做任何配置就能訪問。

3 使 Tomcat 支持 HTTPS

打開 Tomcat 的 conf/server.xml 文件。

修改以下配置:

...
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
...

將以上配置中的 SSLEngine 改為 off,默認為 on。

...
<!--<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="18443" />-->
...
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />
...
<!--<Connector port="8009" protocol="AJP/1.3" redirectPort="18443" />-->
...

禁用 HTTP 8080 端口,開啟 HTTPS 8443 端口,禁用 AJP 8009 端口,以確保只能通過 HTTPS 協議訪問 CAS 服務器。

4 運行 CAS 服務器

啟動部署了 CAS 服務器的 Tomcat,并使用以下地址訪問 CAS 登錄頁面:

https://cas:8443/login

安裝 CAS 服務器

一定要使用域名 cas 來訪問,實際上 cas 指向了 127.0.0.1(需要在本機的 hosts 中進行配置)。

CAS 默認采用了最簡單的認證,即用戶名與密碼必須有,但兩者必須相同,也可對 CAS 做個性化認證配置。

注銷 CAS:

https://cas:8443/logout

 

如何應用 CAS 實現單點登錄?如何定制 CAS 的認證方式?如何將 CAS 集成到 Smart 框架中?下回分解!

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!