<!--[if !supportLists]-->1. 1. 在服务器中生成证书:(注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)
keytool -genkey -alias keystore -keyalg RSA -keysize 1024 -validity 730 -keystore C:\tomcat603\conf\server.keystore
“C:\tomcat603\conf\server.keystore” 这个参数用来保存生产的密钥库
<!--[if !supportLists]-->2. 2. <!--[endif]-->导出证书,由客户端安装:
keytool -export -trustcacerts -alias keystore -file server.cer -keystore server.keystore –storepass changeit
注意“changeit” 是你在第一部生产密钥库是设置的密码
3.客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中)
keytool -import -trustcacerts -alias keystore -file server.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
注意“changeit” 是你在第一部生产密钥库是设置的密码
在这一步可能有异常:java.io.IOException:keystore was tampered with,or password was incorrect
原因是在你的home目录下是否还有.keystore存在。如果存在那么把他删除掉,后再执行
或者删除"%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS 再执行
4. 更改你server.xml 在%Tomcat_home%/conf 目录下, 当前的我的tomcat版本是6.0.3
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/conf/server.keystore"
keystorePass="changeit" />
注意“changeit”你需要更改为你在第一步设置的password。
关于配置,不同版本的tomcat可能不同, 可以参考如下的URL:
http://www.iteye.com/topic/78274
http://hi.baidu.com/rover828/blog/item/4cde5db52e3430c837d3caae.html
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
http://tech.163.com/07/0209/09/36SLC0V3000915A1.html
Keytool的其他命令:
验证是否已创建过同名的证书
keytool -list -v -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit
删除已创建的证书
keytool -delete -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit..