cas單點登錄-https的配置(一)


 前言

  由於個人的興趣和為了加薪,在這里研究下cas單點登錄,同時也記錄下自己探索的過程,希望也能幫到有同樣興趣的小伙伴

 環境

 CAS-5.1.3

 tomcat8.5

 jdk8

centos6.5

1、生成服務器的密匙文件tomcat.keystore

keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -validity 36500 -keystore /usr/local/certificate/tomcat.keystore

參數說明

  • -genkey 生成密鑰
  • -keyalg 指定密鑰算法,這時指定RSA,
  • -keysize 指定密鑰長度,默認是1024位,這里指定2048,長一點,比較難破解,
  • -validity 指定證書有效期,這里指定36500天,我想我的應用用不到那么長時間
  • -alias 指定別名,這里是tomcat
  • -keystore 指定密鑰庫存儲位置,這里存在/usr/local/certificate/目錄下

注意:您的名字與姓氏www.jacky.sso.com是CAS服務器使用的域名,不是隨便亂定的,其他的隨意

 2、導出證書

[root@jacky certificate]# ls
tomcat.keystore
[root@jacky certificate]# keytool -export -alias tomcat -storepass 123456 -file tomcat.cer -keystore tomcat.keystore
存儲在文件 <tomcat.cer> 中的證書
[root@jacky certificate]# ls
tomcat.cer  tomcat.keystore

然后發現certificate目錄下多了一個tomcat.cer的文件,表示導出證書成功

參數說明

  • -alias指定別名為tomcat;
  • -storepass指定私鑰為123456;
  • -file指定導出證書的文件名為tomcat.cer;
  • -keystore指定之前生成的密鑰文件的文件名。

注意:-alias和-storepass必須為生成tomcatekeystore密鑰文件時所指定的別名和密碼,否則證書導出失敗

3、導入證書導入到jdk信任庫

[root@jacky security]# keytool -import -alias tomcat -keystore $JAVA_HOME/jre/lib/security/cacerts -file /usr/local/certificate/tomcat.cer -trustcacerts
輸入密鑰庫口令:  
再次輸入新口令: 
所有者: CN=www.jacky.sso.com, OU=jacky, O=jacky, L=GuangZhou, ST=GuangDong, C=Zh
發布者: CN=www.jacky.sso.com, OU=jacky, O=jacky, L=GuangZhou, ST=GuangDong, C=Zh
序列號: f7508f7
有效期開始日期: Tue Nov 07 07:00:15 CST 2017, 截止日期: Thu Oct 14 07:00:15 CST 2117
證書指紋:
     MD5: BC:F8:ED:14:B5:64:31:65:BF:E2:FC:78:81:C1:1A:69
     SHA1: E7:CE:2B:F9:10:53:74:1B:6C:68:F7:15:5D:3E:DC:ED:83:B6:28:4A
     SHA256: B3:DD:F6:B2:0F:75:53:FD:1A:8D:69:2A:F6:2A:BC:18:A8:4A:20:62:1F:1F:23:D6:A0:70:AE:0A:56:3D:D2:3A
     簽名算法名稱: SHA256withRSA
     版本: 3

擴展: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A2 D1 05 CF 7D F5 3A 6A   7D BD 2C DD EF 9F A6 9D  ......:j..,.....
0010: 09 CC D8 63                                        ...c
]
]

是否信任此證書? [否]:  y
證書已添加到密鑰庫中
[root@jacky security]# 

注意:原來的$JAVA_HOME/jre/lib/security/cacerts文件要先刪掉,否則會報出java.io.IOException: Keystore was tampered with, or password was incorrect錯誤

4、服務端tomcat配置

 打開$CATALINA_HOME/conf/server.xml,增加

<Connector protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/usr/local/certificate/tomcat.keystore" 
keystorePass="123456" port="8443" />

port一般為8443或443,最常用的是443端口(https默認端口),

這樣https方式訪問的時候可以不加端口號(如:https://jacky.sso/cas/login);

keystoreFile為tomcat目錄下的密鑰文件;

keystorePass為私鑰密碼;truststoreFile為生成的信任文件,

5、生成客戶端密鑰庫文件

單向認證的客戶端配置只需生成客戶端信任文件caserts即可。

首先將服務端生成的證書文件(之前生成的casserver.cer文件)復制到$JAVA_HOME/jre/lib/security下,

然后打開CMD窗口切換到$JAVA_HOME/jre/lib/security下並執行命令:

keytool -import -trustcacerts -alias tomcat -storepass 123456 -file tomcat.cer -keystore cacerts

命令執行成功后JDK目錄/jre/lib/security下多出cacerts文件。 

6、在hosts文件中增加下面映射

192.168.6.128  www.jacky.sso.com

7、驗證https配置

說明配置成功

8、總結

      1、講解了利用jdk自帶的工具生成證書

     2、講解了配置tomcat配置https的方法

歡迎關注


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM