• 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的方法

  • 相关阅读:
    make menuconfig显示错误“Your display is too small to run Menuconfig!”
    程序员的那点事(转自java老师李明志)
    不必太羡慕别人
    把数据存储到 XML 文件
    关于session
    网页中的服务器端和客户端脚本
    没有一种成功是不经历磨砺的
    考试导数据总结(一)
    我们应该爱上“犯错”——读应试教育的死穴,恰在于堵死了孩子“犯错”的空间
    软考——多媒体
  • 原文地址:https://www.cnblogs.com/zhimingxin/p/8692836.html
Copyright © 2020-2023  润新知