1. 程式人生 > >1、cas4.0 單點登入 之 https證書

1、cas4.0 單點登入 之 https證書

cas4.0 單點登入 之 https證書

公司專案使用分散式部署,使用單點登入可使各節點無狀態,達到業務與使用者認證解耦;cas-server與cas-client通訊安全完全基於https,需要ssl證書,jdk的keytool工具生成的證書用於開發也是夠的,當然正式上線的證書需要使用第三方認證的證書;這裡介紹下cas開發的準備工作:keytool生成證書。

1、建立證書庫

keytool -genkey -alias castest -keyalg RSA -keystore d:/cas/keystore

注意:-alias:別名,這裡的castest 為別名; -keystore:指定證書庫存放位置,這裡存放到d:/cas目錄下的keystore檔案中,證書庫不需要字尾名

生成證書

注意: 名字與姓氏要填域名,也就是指向部署cas服務的域名,這裡必須填域名,不能填ip;沒有域名的可以修改C:\Windows\System32\drivers\etc\hosts配置對映(推薦使用小工具SwitchHosts,記得使用管理員許可權執行);組織單位名和組織名可以隨便填寫,國家輸入ZH,輸入的口令要記住。

2、匯出證書:

從證書庫中匯出證書

keytool -export -file d:/cas/castest.crt -alias castest -keystore  d:/cas/keystore

這裡寫圖片描述

3、客戶端JVM匯入證書

cas的client端JVM匯入證書,JVM證書庫為%JAVA_HOME%/jre/lib/security/cacerts檔案,

keytool -import -trustcacerts -alias castest -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file d:/cas/castest.crt -storepass changeit 

這裡寫圖片描述

**注意:
1、JVM證書庫密碼預設為changeit
2、使用管理員執行cmd
3、目錄若有空格必須使用雙引號
可能會用到的命令:
檢視cacerts證書庫中的證書列表,通過別名搜尋
keytool -list -v -keystore “%JAVA_HOME%/jre/lib/security/cacerts” -storepass changeit |findstr /i castest
這裡寫圖片描述


刪除證書庫中的證書
keytool -delete -alias castest -keystore “%JAVA_HOME%/jre/lib/security/cacerts” -storepass changeit

4、證書應用到web伺服器-tomcat

cas的server服務端tomcat啟用SSL,使用HTTPS加密協議。
開啟tomcat目錄的conf/server.xml檔案,開啟87行左右的Connector標籤的註釋程式碼,並設定keystoreFile、keystorePass如下:

<Connector port="8443" protocol="HTTP/1.1"
       maxThreads="150"  SSLEnabled="true"  scheme="https"  secure="true"
       clientAuth="false" sslProtocol="TLS" keystoreFile="d:/cas/keystore"  keystorePass="caspass"/>

到此cas需要的SSL環境準備完畢