在要配置PAM_CAS的SSL时,才发现原来之前使用的证书都得重新换掉了。
采用OpenSSL和KeyTool签发自签名证书来替换之前配置的Tomcat SSL
redHat自带Openssl工具,因为我并没有在redhat系统中安装JDK,所以我下载了Openssl并安装在了CAS服务器所在的Windows系统中。
OpenSSL10.9.7c http://gnuwin32.sourceforge.net/downlinks/openssl-bin.php
请自行安装该相关软件并配置好环境变量
一:创建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 = [email protected] [ req_attributes ] challengePassword = 111111
openssl.conf可参考:http://www.openssl.org/docs/apps/req.html#EXAMPLES
将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业务系统时则不需要认证)