单点登录配置https

转载自https://blog.csdn.net/u010475041/article/details/77931867

注意:配置的单点登录版本为cas-5.1.3

若需要上个版本代码,可以点击下载:GitHub 码云

这里写图片描述

上图是未支持https时默认登录页

  • 自签名服务端需要导入证书

重点:

  • passport.sso.com 是我们测试的域名
  • 测试时需要把本地机的ip映射为passport.sso.com设到系统HOSTS文件

证书处理

密钥生成

生成步骤,各参数含义:

  • -genkeypair 生成密钥
  • -keyalg 指定密钥算法,这时指定RSA,
  • -keysize 指定密钥长度,默认是1024位,这里指定2048,长一点,我让你破解不了(哈哈…),
  • -siglag 指定数字签名算法,这里指定为SHA1withRSA算法
  • -validity 指定证书有效期,这里指定36500天,也就是100年,我想我的应用用不到那么长时间
  • -alias 指定别名,这里是cas.server.com
  • -keystore 指定密钥库存储位置,这里存在d盘
  • -dname 指定用户信息,不用一个一个回答它的问题了;

注意:CN=域名,我们采用passport.sso.com

keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36500 -alias passport.sso.com -keystore d:/tomcat.keystore -dname "CN=passport.sso.com,OU=kawhi,O=carl,L=GuangZhou,ST=GuangDong,C=CN"
 
 

    输入上述命令,下面密码我们输入123456,然后一直回车,就在d盘生成了tomcat.keystore文件;

    证书生成

    在cmd下输入如下命令,密码为上面输入的123456:

    keytool -exportcert -alias passport.sso.com -keystore d:/tomcat.keystore  -file d:/tomcat.cer -rfc
     
     

      证书生成在:d:/tomcat.cer

      导入cacerts证书库

      输入密码为 changeit并同意导入

      keytool -import -alias passport.sso.com -keystore %JAVA_HOME%\jre\lib\security\cacerts -file d:/tomcat.cer -trustcacerts
       
       

        检查是否导入成功

        keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts" | findstr/i server
         
         

          有东西输出代表成功

          项目设置

          证书有了,我们必须让项目识别证书,并且把ssl开关打开

          密钥引用

          tomcat.keystore拷贝到sso-server\src\main\resources

          开启ssl

          文件sso-config\src\main\resources\config\sso-dev.properties调整

          1. 调整server.ssl.enabled=true
          2. 新增如下
          server.ssl.key-store=classpath:tomcat.keystore
          server.ssl.key-store-password=123456
          server.ssl.keyAlias=passport.sso.com
           
           

            最终配置文件sso-dev.properties:

            #
            # 版权所有.(c)2008-2017. 卡尔科技工作室
            #
            
            ##
            # CAS Server Context Configuration
            #
            server.context-path=/cas
            server.port=8443
            
            
            #SSL配置
            server.ssl.enabled=true
            server.ssl.key-store=classpath:tomcat.keystore
            server.ssl.key-store-password=123456
            server.ssl.keyAlias=passport.sso.com
            #SSL配置
            
            
            server.max-http-header-size=2097152
            server.use-forward-headers=true
            server.connection-timeout=20000
            server.error.include-stacktrace=NEVER
            
            server.tomcat.max-http-post-size=2097152
            server.tomcat.basedir=build/tomcat
            server.tomcat.accesslog.enabled=true
            server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms)
            server.tomcat.accesslog.suffix=.log
            server.tomcat.max-threads=10
            server.tomcat.port-header=X-Forwarded-Port
            server.tomcat.protocol-header=X-Forwarded-Proto
            server.tomcat.protocol-header-https-value=https
            server.tomcat.remote-ip-header=X-FORWARDED-FOR
            server.tomcat.uri-encoding=UTF-8
            
            spring.http.encoding.charset=UTF-8
            spring.http.encoding.enabled=true
            spring.http.encoding.force=true
            
            ##
            # CAS Cloud Bus Configuration
            #
            spring.cloud.bus.enabled=false
            
            endpoints.enabled=false
            endpoints.sensitive=true
            
            endpoints.restart.enabled=false
            endpoints.shutdown.enabled=false
            
            management.security.enabled=true
            management.security.roles=ACTUATOR,ADMIN
            management.security.sessions=if_required
            management.context-path=/status
            management.add-application-context-header=false
            
            security.basic.authorize-mode=role
            security.basic.enabled=false
            security.basic.path=/cas/status/**
            
            ##
            # CAS Web Application Session Configuration
            #
            server.session.timeout=300
            server.session.cookie.http-only=true
            server.session.tracking-modes=COOKIE
            
            ##
            # CAS Thymeleaf View Configuration
            #
            spring.thymeleaf.encoding=UTF-8
            spring.thymeleaf.cache=true
            spring.thymeleaf.mode=HTML
            ##
            # CAS Log4j Configuration
            #
            # logging.config=file:/etc/cas/log4j2.xml
            server.context-parameters.isLog4jAutoInitializationDisabled=true
            
            ##
            # CAS AspectJ Configuration
            #
            spring.aop.auto=true
            spring.aop.proxy-target-class=true
            
            ##
            # CAS Authentication Credential
            

            测试

            再次说明: 把本机的ip映射为passport.sso.com设到系统HOSTS文件
            这里写图片描述

            127.0.0.1 passport.sso.com
              
              
              1. 重启配置中心
              2. 启动sso-server
              3. 访问 https://passport.sso.com:8443/cas/login 如下图所示

              这里写图片描述


              评论
              添加红包

              请填写红包祝福语或标题

              红包个数最小为10个

              红包金额最低5元

              当前余额3.43前往充值 >
              需支付:10.00
              成就一亿技术人!
              领取后你会自动成为博主和红包主的粉丝 规则
              hope_wisdom
              发出的红包
              实付
              使用余额支付
              点击重新获取
              扫码支付
              钱包余额 0

              抵扣说明:

              1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
              2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

              余额充值