来源:

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>

【SSO单点系列】(10):CAS4.0 之 https证书的更多相关文章

  1. 【SSO单点系列】(2):CAS4.0 登录页的个性化定制

    上一篇 [SSO单点系列](1):CAS环境的搭建介绍了CAS最简单环境的搭建,以及一个例子用来讲解CAS的一个最基础的用法. 今天主要是介绍如何对CAS登录页进行个性化定制.    一.开始 下图是 ...

  2. Spring Cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)

    上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0 登出流程,今天我们看一下根据用户token获取yoghurt信息的流程: /** * 根据token获取用户信息 * ...

  3. (十一) 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  4. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  5. K8s 系列(三) - 如何配置 etcd https 证书?

    在 K8s 中,kube-apiserver 使用 etcd 对 REST object 资源进行持久化存储,本文介绍如何配置生成自签 https 证书,搭建 etcd 集群给 apiserver 使 ...

  6. 【SSO单点系列】(1):CAS4.0 环境的搭建

    一.概述 今天开始写CAS相关的第一篇文章,这篇文章主要是关于CAS环境的搭配,提供给刚刚接触CAS的一个入门指南,并演示一个CAS的最简单的实例 二.环境要求 博主的环境如下: win8.1 64 ...

  7. 【SSO单点系列】(3):CAS4.0 登录页验证码的添加

    2016.08.23 更新 注意:这个教程只适合4.0版本的,4.1以及以上的版本的已经不试用了, 后面几篇有人提到过 源码网盘链接更新了下 : 链接: http://pan.baidu.com/s/ ...

  8. 【SSO单点系列】(7):CAS4.0 SERVER通过数据库方式认证用户

    在前几篇中有简单介绍服务端的认证方式,默认的是直接在 deployerConfigContext.xml 文件中 一个叫做 primaryAuthenticationHandler 的bean中配置. ...

  9. 【SSO单点系列】(6):CAS4.0 单点流程序列图(中文版)以及相关术语解释(TGT、ST、PGT、PT、PGTIOU)

    CAS 相关的内容好久没写了,可能下周会继续更新一些内容吧. 在上一篇中的单点流程序列图由于是从官网直接下载来的,上面都是英文,可能有的朋友看不懂,因此修改成中文的. PS:只修改了一个,第二个图明天 ...

  10. 【SSO单点系列】(4):CAS4.0 SERVER登录后用户信息的返回

    接着上一篇,在上一篇中我们描述了怎么在CAS SERVER登录页上添加验证码,并进行登录.一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户 ...

随机推荐

  1. Vue插槽最全最通俗的总结

    1.匿名插槽----就是定义的时候不带name的插槽,使用的时候也不用带name 总结: (1)一定要分清定义插槽和使用插槽格式.如上图A是在使用一个插槽的基础上再继续定义一个匿名插槽. (2)匿名插 ...

  2. Win10环境下yolov8(ultralytics) 快速配置与测试

    win10下亲测有效!(如果想在tensorrt+cuda下部署,直接看第五5章) 一.win10下创建yolov8环境 # 注:python其他版本在win10下,可能有坑,我已经替你踩坑了,这里p ...

  3. OPA-CH32x系列芯片OPA使用注意事项

    1 OPA运放基本功能说明 1.1 OPA引脚详细说明方式 说明方式1如下所示: OPN0.OPP0.OPO为OPA的第0通道 OPN0:OPA_0通道的N端 OPP0:OPA_0通道的P端 OPO: ...

  4. Nacos服务注册原理分析

    在分布式服务中,原来的单体服务会被拆分成一个个微服务,服务注册实例到注册中心,服务消费者通过注册中心获取实例列表,直接请求调用服务. 服务是如何注册到注册中心,服务如果挂了,服务是如何检测?带着这些问 ...

  5. 【转】查看iOS崩溃日志

    我们在进行iPhone应用测试时必然会在"隐私"中找到不少应用的崩溃日志,但是不会阅读对于很多人来说简直头疼.在此小编为大家详细介绍一下具体的阅读方法,希望大家可以更快的定位BUG ...

  6. CentOS即将停止维护,拥抱阿里“龙蜥“(Anolis OS),VMware安装Anolis OS与介绍

    一.前言 大家在自己电脑来进行服务器的一些操作时,基本都是使用CentOS 7或者是CentOS 8,但是2021年底CentOS 8宣布停止了维护:CentOS 7 在2024年6月30日也会停止维 ...

  7. 基于Apache Hudi 构建Serverless实时分析平台

    NerdWallet 的使命是为生活中的所有财务决策提供清晰的信息. 这涵盖了一系列不同的主题:从选择合适的信用卡到管理您的支出,到找到最好的个人贷款,再到为您的抵押贷款再融资. 因此,NerdWal ...

  8. flutter系列之:在flutter中使用导航Navigator

    目录 简介 flutter中的Navigator Navigator的使用 总结 简介 一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个 ...

  9. 滴水2.c++构造 与 继承

    1.构造函数特点 2.析构函数的特点: 析构函数前面必须有~ 3.继承 一个子类可以有多个父类 作业1. #include<stdio.h> struct DateInfo { int y ...

  10. JZOJ 2022.02.11【提高A组】模拟

    \(\text{Solution}\) 首先把 \(T2\) 给切了,\(T1\) 找半天规律找不到 然后打了个表算是暴力了 \(T3\) 也暴... 太暴了... \(T4\) 直接啥也不会 \(\ ...