cas4.0 单点登录 之 https证书
公司项目使用分布式部署,使用单点登录可使各节点无状态,达到业务与用户认证解耦;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
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环境准备完毕