原理就不多说了看下边
JDK目录为 C:\Program Files\Java\jdk1.6.0_14\bin
cmd 到jdk目录 输入以下命令(具体参数意思,可以参看帮助)
1.创建服务器端证书文件
keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit
(命令行会提示一下内容)
您的名字与姓氏是什么?
[Unknown]: localhost
您的组织单位名称是什么?
[Unknown]: thinkIt.com
您的组织名称是什么?
[Unknown]: thinkIt
您所在的城市或区域名称是什么?
[Unknown]: CQ
您所在的州或省份名称是什么?
[Unknown]: CQ
该单位的两字母国家代码是什么
[Unknown]: cn
CN=localhost, OU=thinkIt.com, O=thinkIt, L=CQ, ST=CQ, C=cn 正确吗?
[否]: y
(以上信息自己随便输入)
2.创建客户端证书文件
keytool -genkey -alias tomcat-client -keyalg RSA -keypass changeit -storepass changeit
您的名字与姓氏是什么?
[Unknown]: localhost
您的组织单位名称是什么?
[Unknown]: thinkIt.com
您的组织名称是什么?
[Unknown]: thinkIt
您所在的城市或区域名称是什么?
[Unknown]: CQ
您所在的州或省份名称是什么?
[Unknown]: CQ
该单位的两字母国家代码是什么
[Unknown]: cn
CN=localhost, OU=thinkIt.com, O=thinkIt, L=CQ, ST=CQ, C=cn 正确吗?
[否]: y
继续命令
keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore
保存在文件中的认证 <server.cer>
keytool -export -alias tomcat-client -storepass changeit -file client.cer -keystore client.keystore
保存在文件中的认证 <client.cer>
添加认证
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
所有者:CN=localhost, OU=thinkIt.com, O=thinkIt, L=CQ, ST=CQ, C=cn
签发人:CN=localhost, OU=thinkIt.com, O=thinkIt, L=CQ, ST=CQ, C=cn
序列号:4a48e472
有效期: Mon Jun 29 23:57:38 CST 2009 至Sun Sep 27 23:57:38 CST 2009
证书指纹:
MD5:84:0D:D9:A8:68:6C:F4:B4:48:77:B5:15:6D:61:91:EA
SHA1:EE:AC:1F:E4:7C:13:81:DF:5B:E3:09:AD:A7:A7:94:FD:C6:D3:DE:68
签名算法名称:SHA1withRSA
版本: 3
信任这个认证? [否]: y
认证已添加至keystore中
keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
所有者:CN=localhost, OU=thinkIt.com, O=thinkIt, L=CQ, ST=bj, C=cn
签发人:CN=localhost, OU=thinkIt.com, O=thinkIt, L=CQ, ST=bj, C=cn
序列号:4a48e4a2
有效期: Mon Jun 29 23:58:26 CST 2009 至Sun Sep 27 23:58:26 CST 2009
证书指纹:
MD5:01:55:2D:F6:5B:5A:23:DB:8B:AE:31:CA:76:05:CF:35
SHA1:39:0B:6D:AE:BD:A8:7C:56:49:90:EB:2B:AF:B4:17:C6:E1:CB:D0:F5
签名算法名称:SHA1withRSA
版本: 3
信任这个认证? [否]: y
认证已添加至keystore中
将生成的cacerts文件copy到<%JAVA_HOME%>\jre\lib\security目录下
配置Tomcat
打开(Tomcat目录)\config\server.xml 找到<Connector port=”8443” ... />节点。默认该节点是被注释掉的,去掉注释,并修改内容为:
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass="密码" keystoreFile="/root/tomcat/server.keystore" />
原有的代码段加上:
keystorePass="password" keystoreFile="tomcat/server.keystore"
(这个文件目录需要自己手动创建并添加该文件)
测试
访问:Https://localhost:8443/ 如果能出现Tomcat管理首页,则证明SSL配置成功
可是失败
------解决方案--------------------