JVM证书制作步骤+耶鲁 CAS 配置
Microsoft Windows XP [版本 5.1.2600]
显示证书库中的证书使用如下命令:
keytool -list -keystore C:\Program Files\Java\jdk1.6.0\jre\lib\security\cacerts
删除tomcat 别名的证书
keytool -delete -alias tomcat -keystore C:\Program Files\Java\jdk1.6.0\jre\lib\security\cacerts
C:\Documents and Settings\Lawrence Yang>keytool -delete -alias tomcat -keypass changeit
keytool错误: java.lang.Exception: Keystore 文件不存在: C:\Documents and Settings\Lawrence Yang\.keystore
C:\Documents and Settings\Lawrence Yang>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: localhost
您的组织单位名称是什么?
[Unknown]: egensource
您的组织名称是什么?
[Unknown]: egensource
您所在的城市或区域名称是什么?
[Unknown]: beijing
您所在的州或省份名称是什么?
[Unknown]: beijing
该单位的两字母国家代码是什么
[Unknown]: cn
CN=localhost, OU=egensource, O=egensource, L=beijing, ST=beijing, C=cn 正确吗?
[否]: y
C:\Documents and Settings\Lawrence Yang>keytool -export -alias tomcat -keypass changeit -file server.crt
输入keystore密码:
保存在文件中的认证 <server.crt>
C:\Documents and Settings\Lawrence Yang>keytool -import -file server.crt -keypass changeit -keystore "c:\Program Files\Java\jdk1.6.0\jre\lib\security\cacerts"
输入keystore密码:
所有者:CN=localhost, OU=egensource, O=egensource, L=beijing, ST=beijing, C=cn
签发人:CN=localhost, OU=egensource, O=egensource, L=beijing, ST=beijing, C=cn
序列号:47e86791
有效期: Tue Mar 25 10:46:41 CST 2008 至Mon Jun 23 10:46:41 CST 2008
证书指纹:
MD5:53:F8:8F:61:94:41:23:A1:52:45:BC:EE:BC:D1:A2:8C
SHA1:1D:06:93:BD:A6:BC:F3:90:30:62:E2:DA:77:3C:C4:6F:F4:D7:77:4D
签名算法名称:SHA1withRSA
版本: 3
信任这个认证? [否]: y
认证已添加至keystore中
C:\Documents and Settings\Lawrence Yang>
显示证书库中的证书使用如下命令: keytool -list -keystore D:/keystore/test 将显示 D:/keystore/test 证书库的的所有证书列表:
将证书导出到证书文件
使用命令:keytool -export -alias Tomcat -file D:/keystore/TC.cer -keystore D:/keystore/test 将把证书库D:/keystore/test 中的别名为 Tomcat 的证书导出到 TC.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。
导出的证书文件是以二进制编码文件,无法用文本编辑器正确显示,可以加上 -rfc参数以一种可打印的编者编码输出。 如:
keytool -export -alias Tomcat -file D:/keystore/TC.cer -keystore D:/keystore/test –rfc
通过证书文件查看证书的信息
通过命令: keytool -printcert -file D:/keystore/TC.cer 可以查看证书文件的信息。 也可以在 Windows 资源管理器中双击产生的证书文件直接查看。
证书条目的删除keytool的命令行参数 -delete 可以删除密钥库中的条目,如: keytool -delete -alias Tomcat -keystore D:/keystore/test,这条命令将 D:/keystore/test 库中的 Tomcat 这一条证书删除了。
证书条目口令的修改使用 -keypasswd 参数,如:keytool -keypasswd -alias Tomcat -keystore D:/keystore/test,可以以交互的方式修改 D:/keystore/test 证书库中的条目为 Tomcat 的证书。
Keytool -keypasswd -alias Tomcat -keypass oldpasswd -new newpasswd -storepass storepasswd -keystore D:/keystore/test 这一行命令以非交互式的方式修改库中别名为 Tomcat 的证书的密码为新密码 newpasswd,行中的 oldpasswd 是指该条证书的原密码, storepasswd 是指证书库的密码。
耶鲁 CAS 配置
耶鲁 CAS 配置
拷贝 cas.war 到 tomcat/webapps
拷贝 casclient.jar 到 tomcat/common/lib 下
添加下面的配置到自己 war 中 web.xml 顶部
<filter> <filter-name>CAS Filter</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name> <param-value>https://localhost:8443/cas/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://localhost:8443/cas/proxyValidate</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value>localhost:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
tomcat/conf/server.xml 打开 8443 那个 connector.
如果没有就添加 :
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
执行 :
%java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
名字 : localhost.
密码 :changeit
其他 , 随便
Export the certificate from the .keystore file to a file called server.crt.
%java_home%\bin\keytool -export -alias tomcat -file server.crt
Import the certificate into the default jvm truststore.
%java_home%\bin\keytool -import -file server.crt -keystore ./jre/lib/security/cacerts
密码 :changeit
Test the SSL configuration by entering https://localhost:8443.
访问应用 :http://localhost:8080/…..
配置是经常遇到的报错:
1 、 C:\Program Files\Java\jdk1.5.0_06\bin>keytool -genkey -alias tomcat -keyalg RSA
输入 keystore 密码: changeit
keytool 错误: java.io.IOException: Keystore was tampered with, or password was i
ncorrect
原因:系统中有了 *.keystore 文件,删除此文件可解决问题。此文件通常在 C:\Documents and Settings\Administrator 目录之下。
2 、 C:\Program Files\Java\jdk1.5.0_06>keytool -import -file server.crt -keystore ./j
re/lib/security/cacerts
输入 keystore 密码: changeit
keytool 错误: java.io.FileNotFoundException: server.crt ( 系统找不到指定的文件。 )
原因:
是否做了下面这一步:
C:\Program Files\Java\jdk1.5.0_06\bin>keytool -export -alias tomcat -file server
.crt
输入 keystore 密码: changeit
保存在文件中的认证 <server.crt>
做完这步之后,稍等片刻,因为 server.crt 是在这步生成的,但是生成的时间比较长。通常在你操作下一步的时候它还没有生成,因此在配置的时候可能报错。
操作过程:
1 、 C:\Program Files\Java\jdk1.5.0_06\bin>keytool -genkey -alias tomcat -keyalg RSA
输入 keystore 密码: changeit
您的名字与姓氏是什么?
[Unknown] : localhost
您的组织单位名称是什么?
[Unknown] : er
您的组织名称是什么?
[Unknown] : se
您所在的城市或区域名称是什么?
[Unknown] : sd
您所在的州或省份名称是什么?
[Unknown] : sdf
该单位的两字母国家代码是什么
[Unknown] : sdf
CN=localhost, OU=er, O=se, L=sd, ST=sdf, C=sdf 正确吗?
[ 否 ] : y
2 、输入 <tomcat> 的主密码
(如果和 keystore 密码相同,按回车): changeit
3 、 C:\Program Files\Java\jdk1.5.0_06\bin>keytool -export -alias tomcat -file server
.crt
输入 keystore 密码: changeit
保存在文件中的认证 <server.crt>
4 、 C:\Program Files\Java\jdk1.5.0_06>keytool -import -file server.crt -keystore ./j
re/lib/security/cacerts
输入 keystore 密码: changeit
Owner: CN=localhost, OU=er, O=se, L=sd, ST=sdf, C=sdf
发照者: CN=localhost, OU=er, O=se, L=sd, ST=sdf, C=sdf
序号: 4504c0e7
有效期间: Mon Sep 11 09:50:31 CST 2006 至: Sun Dec 10 09:50:31 CST 2006
认证指纹:
MD5 : 58:1E:6A:C2:9C:BB:8C:DF:5B:5C:79:B9:2E:FF:EE:45
SHA1 : 02:7C:32:16:24:B1:7F:32:8C:84:96:E6:77:87:0A:1C:31:7B:C8:32
信任这个认证? [ 否 ] : y
认证已添加至 keystore 中