cas 默认是以https 协议发布的,我一直对这个问题避而不谈,因为这个涉及到ssl协议,不是那么容易搞的。我在公司应用cas也是以http协议发布的,因为这个集成公司内网应用,没有必要弄一个证书,花钱出力不讨好。但是即然提到这个https,那么从学习的角度来看,我们也应当学习一下。下面以oracle jdk 1.7为例应用keytool自己制作一个
https证书(下面以单认证的方式进行认证,即只需要cas服务器提供证书)。
1.因为oracle jdk不支持以ip建立证书,所以只能虚拟一个域名cas.server.com
这个配置在C:\Windows\System32\drivers\etc\hosts中
192.168.0.104 cas.server.com
2.进行cmd窗口(开始-运行,输入cmd回车)
输入如下命令:
keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36500 -alias cas.server.com -keystore d:/tomcat.keystore -dname "CN=cas.server.com,OU=cas,O=cas,L=shanghai,ST=shanghai,C=CN"
各参数含义:
-genkeypair 生成密钥
-keyalg 指定密钥算法,这时指定RSA,
-keysize 指定密钥长度,默认是1024位,这里指定2048,长一点,我让你破解不了(哈哈...),
-siglag 指定数字签名算法,这里指定为SHA1withRSA算法
-validity 指定证书有效期,这里指定36500天,也就是100年,我想我的应用用不到那么长时间
-alias 指定别名,这里是cas.server.com
-keystore 指定密钥库存储位置,这里存在d盘
输入上述命令,下面密码我们输入 123456,然后一直回车,就在d盘生成了tomcat.keystore文件;
3.导出数字证书
在cmd下输入如下命令:
keytool -exportcert -alias cas.server.com -keystore d:/tomcat.keystore -file d:/tomcat.cer -rfc
https证书(下面以单认证的方式进行认证,即只需要cas服务器提供证书)。
1.因为oracle jdk不支持以ip建立证书,所以只能虚拟一个域名cas.server.com
这个配置在C:\Windows\System32\drivers\etc\hosts中
192.168.0.104 cas.server.com
2.进行cmd窗口(开始-运行,输入cmd回车)
输入如下命令:
keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36500 -alias cas.server.com -keystore d:/tomcat.keystore -dname "CN=cas.server.com,OU=cas,O=cas,L=shanghai,ST=shanghai,C=CN"
各参数含义:
-genkeypair 生成密钥
-keyalg 指定密钥算法,这时指定RSA,
-keysize 指定密钥长度,默认是1024位,这里指定2048,长一点,我让你破解不了(哈哈...),
-siglag 指定数字签名算法,这里指定为SHA1withRSA算法
-validity 指定证书有效期,这里指定36500天,也就是100年,我想我的应用用不到那么长时间
-alias 指定别名,这里是cas.server.com
-keystore 指定密钥库存储位置,这里存在d盘
-dname 指定用户信息,不用一个一个回答它的问题了;
输入上述命令,下面密码我们输入 123456,然后一直回车,就在d盘生成了tomcat.keystore文件;
3.导出数字证书
在cmd下输入如下命令:
keytool -exportcert -alias cas.server.com -keystore d:/tomcat.keystore -file d:/tomcat.cer -rfc