【SSO单点系列】(10):CAS4.0 之 https证书

 

来源:

http://m.blog.csdn.net/zrk1000/article/details/51166603

http://blog.csdn.net/zhurhyme/article/details/24052951

http://blog.csdn.net/liu251890347/article/details/37698239

 

公司项目使用分布式部署,使用单点登录可使各节点无状态,达到业务与用户认证解耦;cas-server与cas-client通讯安全完全基于https,需要ssl证书,jdk的keytool工具生成的证书用于开发也是够的,当然正式上线的证书需要使用第三方认证的证书;这里介绍下cas开发的准备工作:keytool生成证书。

1、创建证书库

keytool -genkey -alias castest -keyalg RSA -keystore d:/cas/keystore

 

注意:-alias:别名,这里的castest 为别名; -keystore:指定证书库存放位置,这里存放到d:/cas目录下的keystore文件中,证书库不需要后缀名

生成证书

注意: 名字与姓氏要填域名,也就是指向部署cas服务的域名,这里必须填域名,不能填ip;没有域名的可以修改C:\Windows\System32\drivers\etc\hosts配置映射(推荐使用小工具SwitchHosts,记得使用管理员权限运行);组织单位名和组织名可以随便填写,国家输入ZH,输入的口令要记住。

2、导出证书:

从证书库中导出证书

keytool -export -file d:/cas/castest.crt -alias castest -keystore d:/cas/keystore
  • 1

这里写图片描述

3、客户端JVM导入证书

cas的client端JVM导入证书,JVM证书库为%JAVA_HOME%/jre/lib/security/cacerts文件,

keytool -import -trustcacerts -alias castest -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file d:/cas/castest.crt -storepass changeit 

这里写图片描述

**注意: 
1、JVM证书库密码默认为changeit 
2、使用管理员运行cmd 
3、目录若有空格必须使用双引号 
可能会用到的命令: 
查看cacerts证书库中的证书列表,通过别名搜索 
keytool -list -v -keystore “%JAVA_HOME%/jre/lib/security/cacerts” -storepass changeit |findstr /i castest 
这里写图片描述 
删除证书库中的证书 
keytool -delete -alias castest -keystore “%JAVA_HOME%/jre/lib/security/cacerts” -storepass changeit

4、证书应用到web服务器-tomcat

cas的server服务端tomcat启用SSL,使用HTTPS加密协议。 
打开tomcat目录的conf/server.xml文件,开启87行左右的Connector标签的注释代码,并设置keystoreFile、keystorePass如下:

<Connector port="8443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="d:/cas/keystore" keystorePass="caspass"/>

到此cas需要的SSL环境准备完毕

 

 

CAS取消https方法配置

详细配置修改如下:

1 、 WEB-INF/deployerConfigContext.xml

    在

    < bean class = "org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"     p:httpClient-ref = "httpClient" />

增加参数 p:requireSecure="false" ,是否需要安全验证,即 HTTPS , false 为不采用 如下:

< bean class = "org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref = "httpClient" p:requireSecure= "false" />

      

2 、 WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml 
         修改 p:cookieSecure="true" 为 p:cookieSecure=" false " , 即不需要安全 cookie

如下部分:

    < bean id = "ticketGrantingTicketCookieGenerator" class = "org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

       p:cookieSecure = false "

       p:cookieMaxAge = "-1"

       p:cookieName = "CASTGC"

       p:cookiePath = "/cas" />

 

3 、 WEB-INF\spring-configuration\warnCookieGenerator.xml

修改 p:cookieSecure="true" 为 p:cookieSecure=" false " , 即不需要安全 cookie

结果如下:

    < bean id = "warnCookieGenerator" class = "org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

       p:cookieSecure = false "

       p:cookieMaxAge = "-1"

       p:cookieName = "CASPRIVACY"

       p:cookiePath = "/cas" />

 

 

 

 

cas 用HTTPS方式访问 安全连接失败

原创 2014年07月11日 17:03:48
  • 1564

在cas server配置以HTTPS方式,客户端同样请求为HTTPS方式,在各个浏览器下出现错误,如下:

firefox:

chrome:

ie:

ie上看不到任何反应就不贴图了

 

导致以上结果的原因就是在客户端指定的server地址有问题,不应该指定server的应用端口 而是应该指定为SSL端口443或8443,如:

 

<filter>  
    <filter-name>CASFilter</filter-name>  
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>  
    <init-param>  
      <param-name>casServerLoginUrl</param-name>  
      <param-value>https://cas.my.com:8443/cas/login</param-value>  
    </init-param>  
    <init-param>  
      <param-name>serverName</param-name>  
      <param-value>http://cas.app1.com:8080</param-value>  
    </init-param>  
  </filter>  

 

 

转载于:https://www.cnblogs.com/hedgehog105/p/8177704.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值