CAS Server部署指南

 

1      查看系統基本信息

1.1     確認發行版

登陸到Linux服務器執行 lsb_release -a ,便可列出全部版本信息,例如:
[root@3.5.5Biz-46 ~]# lsb_release -a 
LSB Version: 1.3
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 1)
Release: 4
Codename: NahantUpdate1java

1.2     生成證書

keytool -genkey -keyalg RSA -dname CN=10.160.5.242 -ext san=ip:10.160.5.242 -alias sso_dtdream -keysize 1024 -validity 730 -keypass changeit -keystore /root/keystoreweb

注意密碼用changeit算法

1.3     導出證書

keytool -export -alias sso_dtdream -keystore /root/keystore -file sso.crtspring

1.4     確認Java版本和證書庫的位置

         以下圖所示,確認java的版本是1.8,證書庫的位置是/etc/pki/java/cacertsapache

1.5     確認tomcat已經正確安裝

         以下圖所示,說明tomcat已經正確安裝,版本號爲7.0,且已經正常啓動和運行。tomcat

1.6     其餘準備

須要以下文件:服務器

cas.war: CAS服務的全部文件,用來部署用的歸檔包。app

keystore: 用來存儲證書私鑰和公鑰的證書庫文件webapp

sso.crt: 用於在客戶端驗證CAS Server的CA證書(此處指自簽名證書).net

2      服務器端部署

2.1     配置證書庫

服務器端須要用證書庫中的私鑰來協商HTTPS通道,還要從證書庫中取證書發送給客

戶端進行驗證。這裏須要將用到的證書庫放到合適的位置。

         以CentOS7爲例,咱們須要先把keystore文件拷貝到一個能夠訪問的目錄,這裏拷貝到/var/lib/tomcat目錄下,爲了保證有訪問權限,將owner和group都修改成tomcat:

[root@iZ25gix959xZ ~]# cp keystore /var/lib/tomcat

[root@iZ25gix959xZ ~]# chown tomcat /var/lib/tomcat/keystore

[root@iZ25gix959xZ ~]# chgrp tomcat /var/lib/tomcat/keystore

2.2     修改配置文件    

以CentOS中配置tomcat爲例,修改/etc/tomcat/server.xml文件:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"

keystoreFile="/var/lib/tomcat/keystore" keystorePass="changeit"

           truststoreFile="/usr/local/jdk1.8.0_45/jre/lib/security/cacerts"/>

其中keyStoreFile中制定先前配置的證書庫文件便可。

2.3     啓動服務

將cas.war拷貝到tomcat的WEB服務目錄下,如/var/lib/tomcat/webapp

而後重啓tomcat服務,以CentOS7爲例:

 [root@iZ25gix959xZ ~]# service tomcat restart

 

3      客戶端部署

3.1     導入Server端證書

keytool -import -keystore "%JAVA_HOME%"\jre\lib\security\cacerts -file D:\server\ftp\sso_dtdream.crt -alias sso

         上述命令將證書導入到Java的證書庫中,該證書主要用於驗證CAS Server端發過來的證書,用於給CAS Client用的。

         CAS Client主要包含在App Server中,本步驟只須要在APP server端來完成。

3.2     修改配置文件

APP server和CAS Server鏈接的時候會用HTTPS進行通訊。以Tomcat爲例,由於用來

驗證CAS Server服務器證書的證書庫即爲%JAVA_HOME%下的cacerts,不須要再作額外的配置,會自動去cacerts去取證書驗證CAS Server。

4      問題

4.1     沒有找到算法的錯誤

顯示信息以下:

Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation

能夠繼續向下看調用棧,能夠看出緣由應該是讀證書庫的時候出錯了。

   

解決方法:

將truststoreFile="/usr/local/jdk1.8.0_45/jre/lib/security/cacerts" 修改成

TruststoreFile="/etc/pki/java/cacerts"便可。推測緣由是/usr/local/jdk1.8.0_45/jre/lib/security/cacerts這個目錄,tomcat沒有訪問的權限。須要注意,/etc/pki/java/cacerts裏面必須是一個可用的證書庫,不能是空文件或者連接文件。

4.2     訪問/login/cas的時候提示404錯誤

該錯誤通常出如今Spring4.0之前的版本,Spring4.0的版本上不會出現這個錯誤。

須要在

<bean id="casAuthenticationFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter">  中添加下面的屬性:

<property name="filterProcessesUrl" value="/login/cas " />   

相關文章
相關標籤/搜索