在Tomcat实现SSL(单向)

来源:互联网 发布:淘宝卖家怎么增加客服 编辑:程序博客网 时间:2024/06/06 08:05
前提:
本说明单向认证,是针对客户端使用HttpsURLConnection连接服务器时的配置。
如果客户端只是浏览器,无需用HttpsURLConnection连接服务器的话,
第三步【三、客户端的设定】可省略。


一、公钥和私钥作成

1 生成公钥server.keystore

keytool -genkey -alias server -keystore server.keystore -keyalg RSA

输入keystore密码: <server.keystore密码>  这里我输入:changeit
再次输入新密码: <server.keystore密码>  这里我输入:changeit
您的名字与姓氏是什么? 是Server端的域名,如:www.sina.com, localhost等
[Unknown]: Benben
您的组织单位名称是什么? 随意
[Unknown]: Jandsee
您的组织名称是什么? 随意
[Unknown]: Jandsee
您所在的城市或区域名称是什么?随意
[Unknown]: Shenzhen
您所在的州或省份名称是什么?随意
[Unknown]: Guangdong
该单位的两字母国家代码是什么?随意
[Unknown]: CN
CN=Benben, OU=Jandsee, O=Jandsee, L=Shenzhen, ST=Guangdong, C=CN 正确吗?
[否]: Y

输入<server>的主密码
       (如果和 keystore 密码相同,按回车):


2 导出server端信任证书为 server.cer

keytool -export -alias server -file server.cer -keystore server.keystore

输入keystore密码:<server.keystore密码>  这里我输入:changeit
保存在文件中的认证 <server.cer>


二、服务器端的设定

1 直接进入配置tomcat service.xml文件

把<Connector port="8443"这一段的没删掉,加入下面的内容:

   <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS"
              keystoreFile="server.keystore" keystorePass="changeit" />

1,keystoreFile:在第1步成生的keystore
2,keystorePass:在第1步输入的password

2 把第1步生成的server.keystore放到tomcat的根目录下。


三、客户端的设定

1 把生成的server.cer导入到client端的JRE中

keytool -import -trustcacerts -alias server -file server.cer
-keystore "c:/Program Files/Java/jdk1.6.0_17/jre/lib/security/cacerts" -sto
repass changeit

选Y


注意:
1 Client端HttpsURLConnection的应用访问Server端的应用的URL一定要和[1]中的[您的名字与姓氏是什么?]的域名一样。
2如果购买了证书的话,就不需要在客户端导入server.cer到JRE中了。
原创粉丝点击