1. 程式人生 > >單點登入 linux上搭建cas服務端

單點登入 linux上搭建cas服務端

安裝環境

centOS7.5

jdk1.8.0_161

Tomcat9.0

cas-server-webapp-4.0.0.rar

1. 建立證書

keytool -genkey -alias cas -keyalg RSA -keystore /usr/local/keys/keycard/cas.keystore


2.匯出證書

keytool -export -alias cas -keystore /usr/local/keys/keycard/cas.keystore -file /usr/local/keys/keycard/cas.crt -storepass 123456


3.客戶端JVM匯入證書

keytool -import -keystore /usr/local/java/jdk1.8/jre/lib

/security/cacerts -file /usr/local/keys/keycard/cas.crt -alias cas

 

這裡的口令是changeit

4. 將證書引入到cas伺服器端(修改server.xml)

這裡注意8443埠的protocol中的紅色部分,我這裡使用的是Tomcat9.0.7。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

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

    keystoreFile="/usr/local/keys/keycard/cas.keystore

" keystorePass="123456"

    clientAuth="false" sslProtocol="TLS"/>

<Host name="fire.web.com"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

5. 配置主機域名

# vi /etc/hosts

centOS7.5主機的ip   fire.web.com

6.下載cas服務端war包

cas-server-webapp-4.0.0.war也可在這裡下載

再下載三個jar包

c3p0-0.9.1.2.jar 、cas-server-support-jdbc-4.0.0.jar、

mysql-connector-java-5.1.13-bin.jar

7.將上一步弄好的war包改名為cas.war,並複製到tomcat的webapps中,啟動tomcat服務

注:在此需要開啟8443埠,再重啟服務防火牆

# firewall-cmd --zone=public --add-port=8443/tcp --permanent

# firewall-cmd --zone=public --add-port=8005/tcp --permanent

# firewall-cmd --zone=public --add-port=8009/tcp --permanent

# firewall-cmd --zone=public --add-port=8080/tcp --permanent

# systemctl restart firewalld.service

8. 遠端訪問測試

輸入使用者名稱密碼(deployerConfigContext.xml檔案中紅色部分)

<bean id="primaryAuthenticationHandler"

         class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">

        <property name="users">

            <map>           使用者名稱          密碼

                <entry key="casuser" value="Mellon"/>

            </map>

        </property>

 </bean>

9. 連線資料庫(我這裡連線的是mysql資料庫)

<constructor-arg>

            <map>

                <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />

                <!-- 註釋下面這一行 -->

                <!-- entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" -->

<!-- key-ref指定自己的本地資料庫訪問 -->

<entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/>

            </map>

 </constructor-arg>

<!-- 指定c3p0資料來源 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

<property name="driverClass" value="com.mysql.jdbc.Driver" />

<property name="jdbcUrl" value="jdbc:mysql://資料庫伺服器ip:3306/資料庫名?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false"/>

<property name="user" value="使用者名稱"/>

<property name="password" value="密碼"/>

</bean>

<!-- 訪問本地資料庫 -->

<bean id="dbAuthHandler"

  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"

  p:dataSource-ref="dataSource"

  p:sql="SELECT pwd FROM user WHERE username=?" />

10.重啟服務,登入進行再測試

 配置主機域名

   編輯C:\Windows\System32\drivers\etc\hosts檔案

     windows主機ip   fire.web.com

瀏覽器輸入https://fire.web.com:8443/cas/login進行測試

登出輸入https://fire.web.com:8443/cas/logout

如果要開機自啟動tomcat,配置如下:

1. chmod +x /etc/rc.d/rc.local

2. vi /etc/rc.d/rc.local

export JAVA_HOME=/usr/local/java/jdk1.8

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

/usr/local/tools/tomcat/tomcat9/cas-server/bin/startup.sh