读书人

Https://localhost:8443/访问不了,该如

发布时间: 2012-02-14 19:19:19 作者: rapoo

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



可是失败

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


这个单向认证的应该比较好搞 可能是密钥库的路径不对吧 好久没接触都忘了
[解决办法]
是不是还少了个。。。truststorefile="d:/path/bin/x509/root.jks"
truststoretype="JKS" truststorepass="123456"
我当时貌似是参照下面的方法做的。。时间久了 确实想不起来了
http://blog.csdn.net/TechChan/article/details/5484253
[解决办法]
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="443" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="100" debug="0" scheme="https" secure="true"
useURIValidationHack="false" disableUploadTimeout="true">
<Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
keystoreFile="C:/Program Files/Apache Group/Tomcat 4.1/conf/server_keystore"
keystorePass="11111111"
clientAuth="true" protocol="TLS" />
</Connector>

[解决办法]
Https://localhost:8443/ 这个你多写了一个s 应写成Http://localhost:8443/

你的问题的是启动不了Tomcat吗? 写成这样就行了Http://localhost:8080/
[解决办法]
错误信息是什么?
[解决办法]
你的是Tomcat多少版本的? 5.x默认是8080 6.x默认是8085 不同的版本端口不同
[解决办法]
truststorefile="d:/path/bin/x509/root.jks"

读书人网 >J2EE开发

热点推荐