首页 > 代码库 > tomcat搭建https服务
tomcat搭建https服务
1、生成服务器站点证书
1) 生成密钥仓库
进入jdk的bin目录,如:D:\jdk1.6.0_16\bin
执行:
D:\jdk1.6.0_16\bin\keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\server.keystore -validity 36500
(参数简要说明:“D:\server.keystore”含义是将证书仓库文件的保存路径,证书仓库文件名称是server.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天 “tomcat”为自定义证书名称,默认与仓库文件名一致)
在命令行填写必要参数:
- 输入keystore密码:此处需要输入大于6个字符的字符串(如:123456)。
- “您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP,否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”。
- 你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家 代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n” 重新填写上面的信息。
- 输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以,完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件。
2) 生成证书签名请求
执行:
D:\jdk1.6.0_16\bin\keytool -certreq -alias tomcat -keystore d:\server.keystore -file d:\tomcat.txt
(也可以不导出签名请求,则服务器证书是一个自签名的证书,如果不导出签名请求,3)、4)、5)不需要操作)
3) 对证书签名请求进行签名
将生成的tomcat.txt证书签名请求发给CA服务器,生成tomcat.cer
4) 导入CA证书到keystore
执行:
D:\jdk1.6.0_16\bin\keytool -import -v -alias ca -file d:\CTJ.cer -keystore d:\server.keystore
按提示输入keystore密码,即可导入成功(可使用keytool -list查看)
5) 导入CA签名后的证书
把3)中生成的tomcat.cer放到指定路径
执行:
D:\jdk1.6.0_16\bin\keytool -import -v -trustcacerts -alias tomcat -file d:\tomcat.cer -keystore d:\server.keystore
2、 颁发客户端证书(双向认证时需要)
1) 使用CA服务器颁发客户端证书(client.pfx)
2) 导入客户端证书到本地IE中
双击client.pfx,按步骤安装客户端证书
3) 导入CA证书到本地IE中
按步骤安装CA证书
4) 将该CA证书导入到1步骤的keystore中
3、配置tomcat服务器
1) 进入tomcat\conf\目录,打开server.xml,找到Connector port="8443"配置段,修改为如下:
<Connector port="8443" protocol="HTTP/1.1"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="D:/server.keystore" keystorePass="123456"
truststoreFile="D:/server.keystore" truststorePass="123456"/>
如果是单向认证,则设置clientAuth = "false"。
2) 找到Connector port="8080"配置段,修改为如下:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" />
(重定向端口号)
https服务配置完毕。
个人总结,如有描述不准确的地方,望指教。
tomcat搭建https服务