概要說明
CAS要求,必須使用HTTPS的服務,否則就只等實現登錄,無法實現單點登錄。
科普下HTTPS,網站有HTTP和HTTPS兩種協議。HTTP是瀏覽器到網站之間是明文傳輸,比如你輸入帳號名和密碼點擊登錄,那帳號名和密碼在中間傳輸過程中有泄漏的風險。HTTPS是瀏覽器和網站之間加密傳輸,使用的非對稱加密方式,所以非常安全。目前各大網站的登錄基本都是用了HTTPS服務。
在上一篇文章《輕松搭建CAS 5.x系列(1)-使用cas overlay搭建SSO SERVER 服務端》中,我們搭建了HTTP的CAS SERVER,在登錄畫面中有2個錯誤提示,其中一個就是使用了非加密協議的錯誤。本文就是來解決這個問題的。
操作步驟
1. 設置域名
SSL證書是基於域名的,如果您有自己的域名,請將域名指向到您的測試服務器。如果您沒有自己的域名,那自己模擬個域名吧,暫且使用 cas.example.org 。在測試的電腦上,設置hosts將該域名指向到當前服務器。具體設置方式如下:
打開文件C:\Windows\System32\drivers\etc\hosts添加如下行
127.0.0.1 cas.example.org
2. 生成SSL證書
如果是正式對外的話,需要購買正式的SSL證書,阿里雲和騰訊雲都有。本文只是用於測試,只需要本地生成個SSL證書即可。購買的證書和自己生成證書的差別么,其一沒那么的安全,其二瀏覽器不識別,訪問時會有安全警告。
生成證書的步驟是
d:\ cd D:\casoverlay keytool -genkey -alias cas -keyalg RSA -keysize 2048 -keypass changeit -storepass changeit -keystore casexample.keystore -dname "CN=http://cas.example.org/,OU=casexample.com,O=casexample,L=casexample,ST=casexample,C=CN" -deststoretype pkcs12
3. Tomcat開啟HTTPS服務,導入證書
Tomcat默認情況下是打開HTTP服務的,HTTPS的服務是需要手動開發的,具體打開步驟如下:
打開文件D:\casoverlay\apache-tomcat-8.5.31\conf\server.xml,增加如下配置
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="D:/casoverlay/casexample.keystore" certificateKeystorePassword="changeit" type="RSA" /> </SSLHostConfig> </Connector>
4. 啟動Tomcat
執行D:\casoverlay\apache-tomcat-8.5.31\bin\startup.bat
5. 訪問CAS服務並登錄
https://cas.example.org:8443/cas
可以看到安全的錯誤提示已經沒有了
輸入帳號名和密碼:casuser/Mellon
恭喜您,HTTPS的CAS服務器已經搭建好了
最后,大家想更多CAS了解的話,可以來[CAS中文文檔站點](http://www.cassso-china.cn)(http://www.cassso-china.cn)來瞅瞅。