日期:2014-05-20  浏览次数:24648 次

Https://localhost:8443/访问不了
原理就不多说了看下边

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配置成功 

 

可是失败

------解决方案--------------------