在要配置PAM_CAS的SSL时,才发现原来之前使用的证书都得重新换掉了。

采用OpenSSL和KeyTool签发自签名证书来替换之前配置的Tomcat SSL

redHat自带Openssl工具,因为我并没有在redhat系统中安装JDK,所以我下载了Openssl并安装在了CAS服务器所在的Windows系统中。

请自行安装该相关软件并配置好环境变量

一:创建Openssl配置文件

[ req ]

default_bits = 1024

default_keyfile = ca-privkey.pem

distinguished_name = req_distinguished_name

attributes = req_attributes

prompt = no

output_password = 111111

[ req_distinguished_name ]

C = CN

ST = Beijing

L = Haidian

O = www.ncs-cyber.com.cn

OU = ncs-cyber.com.cn

CN = RainTime

emailAddress = zz@ncs-cyber.com.cn

[ req_attributes ]

challengePassword = 111111

将openssl.conf文件拷贝到openssl的安装目录下的bin目录中

二:创建数字证书

1:为方便,在C盘创建用于存放数字证书的文件夹"ca",路径为:"c:\ca"

2:运行命令提示符"CMD"

3:执行Openssl命令

1)生成私钥

openssl genrsa -out c:\ca\ca-privkey.pem 1024

2)生成待签名证书

Openssl req –new –out c:\ca\ca-req.csr -key c:\ca\ca-privkey.pem -config

openssl.conf

3)用CA私钥匙进行自签名

openssl x509 -req -in c:\ca\ca-req.csr -out c:\ca\ca-root.pem -signkey

c:\ca\ca-privkey.pem -days 365

4:执行KeyTool命令

1)创建KeyPari

keytool -genkey -alias cas-server -keyalg RSA -keystore c:ca\cas-store.keystore

-validity 365

注意:CN应为CAS服务器的域名或机器名

2)生成待签名证书

keytool -certreq -alias cas-server -sigalg MD5withRSA -file c:\ca\cas-server.csr

-keystore cas-store.keystore

5:执行Openssl命令,使用私钥对服务器请求证书文件进行签名

openssl x509 -req -in c:\ca\cas-server.csr -out c:\ca\cas-server-cer.pem -CA

c:\ca\ca-root.pem -CAkey c:\ca\ca-privkey.pem -days 365 -set_serial 1

6:执行KeyTool命令,导入根证书到信任证书库

keytool -import -v -trustcacerts -alias cas-root -file c:\ca\ca-root.pem

-keystore %JAVA_HOME%\jre\lib\security\cacerts

7:执行KeyTool命令,导入服务器证书到证书库

keytool -import -v -trustcacerts -alias c:\ca\cas-server -file cas-server-cer.pem

-keystore cas-store.keystore

执行完以上命令后,在c:\ca目录下,应有文件如下:

1:ca-privkey.pem

2:ca-req.csr

3:ca-root.pem

4:cas-store.keystore

5:cas-server.csr

6:cas-server-cer.pem

替换方案:

1:将cas-store.keystore替换掉CAS服务器Tomcat中所使用的证书库

2:编辑redhat主机中,pam_cas模块所使用的pam_cas.conf文件,修改文件中的ssl设为on,trusted_ca参数所指定的证书文件为ca-root.pem,端口为8443

在配置PAM的SSL时,多说两句,pam_cas.conf配置文件中的trustca值,应该为一个BASE64编码的证书文件,注释中提到,此证书应该为一个CA根书,可见这个SSL连接是单向连接。

至此,PAM_CAS的SSL算是配置成功

下次的研究目标是:基于kerberos协议,通过spnego机制实现CAS与AD间的单点登录(凡是登录域的用户,在访问CAS业务系统时则不需要认证)

0

0

分享到:

2010-05-13 10:49

浏览 1631

评论

java参数注解pam_CAS3.4 关于PAM模块SSL的详细配置相关推荐

  1. java参数注解pam_吃透Java基础十:注解

    一.什么是注解 官方定义: 注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分.注解对于代码的运行效果没有直接影响. 注解有许多用处,主要如下: 提供信息给编译器: ...

  2. java参数注解pam_java – 使用xmlelement defaultvalue注释指定默认值的简单方法

    我通过JAXB有一个简单的pojo注释类: public class MyPojo implements Serializable { private final static long serial ...

  3. 我的世界java参数优化,教程/提高帧率 - Minecraft Wiki,最详细的官方我的世界百科...

    帧率(Frame rate,又称FPS)是视频设备产生叫作帧的独特连续图像的频率.帧是静态图像,当组合在一起的时候,就成为了流媒体,这是所有的移动媒体的基础.帧率通常表示每秒的帧数(FPS). 低FP ...

  4. java自定义注解实现前后台参数校验

    其实是可以通过@Constraint来限定自定义注解的方法. @Constraint(validatedBy = xxxx.class) 下面是我做的 java自定义注解实现前后台参数校验 的代码示例 ...

  5. java自定义方法参数注解_Java方法中的参数太多,第1部分:自定义类型

    java自定义方法参数注解 我认为构造函数和方法中冗长的参数列表是Java开发中的另一个" 危险信号 ",就逻辑和功能而言,它们不一定是"错误的",但通常暗示当 ...

  6. spring多参java注解_spring参数注解校验

    在写一些controller协议的时候,有些时候从前端传过来的参数较多,好的办法是定义一个实体类来封装请求参数,但是用实体类封装参数后,无法对参数值进行校验,可以使用spring的@Validated ...

  7. java中注解动态传参_Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)...

    Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)java 前言:因为前段时间忙于写接口,在接口中须要作不少的参数校验,本着简洁.高效的原则,便写了这个小工具供本身使 ...

  8. Java自定义注解参数ElementType.PARAMETER

    1.创建自定义参数注解 import org.springframework.core.annotation.AliasFor;import java.lang.annotation.*;@Targe ...

  9. java 获取自定义参数类型_Springboot中使用自定义参数注解获取 token 中用户数据...

    使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类 ...

最新文章

  1. 【BZOJ】4032: [HEOI2015]最短不公共子串(LibreOJ #2123)
  2. NLP通用模型decaNLP诞生,一个模型搞定十大自然语言常见任务
  3. DeprecationWarning: the md5 module is deprecated; use hashlib instead import md5的解决办法
  4. 【Transformer】SOFT: Softmax-free Transformer with Linear Complexity
  5. 【对象程序设计面向】虚继承
  6. jquery将html转换word,HTML代码转word!亲测!可用!!!
  7. js 验证护照_护照本地策略第2部分| Node.js
  8. Linux系统原理(工作模式)
  9. java如何获取管理员权限
  10. 数据挖掘05-偏相关分析【原理、案例、python实现】
  11. C++在终端、文件中就地覆盖输出的方法
  12. 深入浅出Zookeeper集群搭建
  13. 【计算机网络】第四部分 网络层(21) 地址映射、差错报告和多播
  14. 数学课本五大奇人【zhuan】
  15. windows10 改变桌面路径到其他盘 直接显示所有文件重定向路径问题
  16. DevStream 概览——开源 DevOps 工具链管理工具
  17. 小程序云开发请求云函数成功,但result为空/null的处理,四种问题处理方法汇总
  18. 昔日烟王褚时健办果园成亿万富翁 拒上市圈钱
  19. UDP服务器和客户端
  20. 入门版XNA开发套件供玩家开发X360游戏

热门文章

  1. 三大重磅奖项揭晓 2020全球智博会为行业加冕
  2. 如何摆脱初学者的不自信,成为一名专业编程人士?
  3. Google 与微软的浏览器之争
  4. 你不是颠覆 IoT,就是被 IoT 颠覆!
  5. 技术人写的公众号为啥没人看?
  6. 移动开发出路在哪里?是时候用物联网了!| 技术头条
  7. 互联网行业的体面隐退 | 畅言
  8. Visual Studio 2017 15.5 正式发布,性能再提升
  9. 网络编程之bind()的未解之谜
  10. html加速度陀螺仪坐标,如何从Javascript访问加速度计/陀螺仪数据?