1.因為是本地模擬sso環境,而sso的環境測試需要域名,所以需要虛擬幾個域名出來,步驟如下:
2.進入目錄C:WindowsSystem32driversetc
3.修改hosts文件
127.0.0.1 jeesz.cn
127.0.0.1 sso1.jeesz.cn
127.0.0.1 sso2.jeesz.cn
4.生成認證證書
注意:我們可以根據sso單點登錄的架構圖可以看到,在客戶端和服務端進行交互的時候,是需要認證的,在這裡我們使用jdk中的keytool方案生成證書(一般正式環境,使用正規機構頒發的證書,可以去購買)
(一)創建一個caskey目錄,如:D:sso-cascaskey
(二)打開cmd的命令窗口:
(三)進入jdk bin的安裝目錄
(四)使用keytool -genkey -alias mycacerts -keyalg RSA -keystore D:/sso-cas/caskey/keycard 生成key
注意:輸入相關信息用於生成證書. 其中名字與姓氏使用你的域名,保持和C:WindowsSystem32driversetchosts 文件中映射域名相同,注意不要寫成IP。
在這裡我使用的口令是minglisoft(這個要記住,後面還會使用到)
名字姓氏使用的是jeesz.cn(對應host中的域名配置)
(五)使用命令keytool -export -file D:/sso-cas/caskey/keycard.crt -alias mycacerts -keystore D:/sso-cas/caskey/keycard導出證書:
注意:口令為minglisoft
(六)將證書導入到 JDK 安裝目錄
Keytool -import -keystore C:/"Program Files"/Java/jdk1.8.0_131/jre/lib/security/cacerts -file D:/sso-cas/caskey/keycard.crt -alias mycacerts
備註:我已經幫忙生成了,最終要將cacerts拷貝到C:Program FilesJavajdk1.8.0_131jrelibsecurity目錄即可
注意口令:minglisoft
- 準備好服務端的tomcat容器,這裡使用的是tomcat8進行測試(首先要保證tomcat啟動後是可以運行的),如下:
6.修改server.xml文件,如下:
注意: 這裡使用的是https的認證方式,需要將這個配置放開,並做如下修改:
port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/sso-cas/caskey/keycard"
keystorePass="minglisoft"
/>
注意: keystoreFile="D:/sso-cas/caskey/keycard" --證書了路徑
keystorePass="minglisoft" --證書密碼
7.測試https的8443端口是否可以訪問:https://localhost:8443
配置沒有問題
8.可以配置只通過域名訪問,還是修改server.xml文件,將localhost的配置修改為jeesz.cn如下:
unpackWARs="true" autoDeploy="true">
unpackWARs="true" autoDeploy="true">
重啟tomcat容器,訪問如下:http://jeesz.cn:8080
9.將cas-server-webapp-4.2.7.war包拷貝到tomcat容器中,並命名為cas.war如下:
10.重啟啟動tomcat容器,訪問cas, https://jeesz.cn:8443/cas
默認用戶名為:casuser
默認密碼為:Mellon
以下是所有的cas sso單點登錄交付件和源碼
到此cas的server測試成功!!(企業架構源碼可以加求球:三五三六二四七二五九)