您的位置:首页 > 理论基础 > 计算机网络

Tomcat HTTPS

2015-08-19 10:52 411 查看
一、创建证书

因为是测试用所以用JDK自带的keytool工具生成证书

真正上线的产品肯定要去花钱买证书哒

证书认证一般都是由VeriSign认证,中文官方网站:http://www.verisign.com/cn/

keytool 命令有很多 这里就不一一介绍,具体的可以使用 “keytool -command_name -help” 获取 command_name 的用法

密钥和证书管理工具

命令:

-certreq 生成证书请求

-changealias 更改条目的别名

-delete 删除条目

-exportcert 导出证书

-genkeypair 生成密钥对

-genseckey 生成密钥

-gencert 根据证书请求生成证书

-importcert 导入证书或证书链

-importpass 导入口令

-importkeystore 从其他密钥库导入一个或所有条目

-keypasswd 更改条目的密钥口令

-list 列出密钥库中的条目

-printcert 打印证书内容

-printcertreq 打印证书请求的内容

-printcrl 打印 CRL 文件的内容

-storepasswd 更改密钥库的存储口令

这里我们生成一个密匙对,用RSA算法加密

keytool -genkey -alias icwhich -keyalg RSA -keystore E:/keys/icwhichkey


回车输入以下信息:

输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]:  www.icwhich.com
*严重提醒:这里输入的域名地址,不是你的或者公司名字什么的姓氏*
您的组织单位名称是什么?
[Unknown]:  icwhich.com
您的组织名称是什么?
[Unknown]:  icwhich.com
您所在的城市或区域名称是什么?
[Unknown]:  XIAN
您所在的省/市/自治区名称是什么?
[Unknown]:  SHANNXI
该单位的双字母国家/地区代码是什么?
[Unknown]:  CHINA
CN=www.icwhich.com, OU=icwhich.com, O=icwhich.com, L=XIAN, ST=SHANNXI, C=CHINA是否正确?
[否]:  y

输入 <icwhich> 的密钥口令
(如果和密钥库口令相同, 按回车):


如果没有域名可以在hosts虚拟一个域名地址,其实就是在

C:\Windows\System32\drivers\etc\hosts

添加一个静态路由

127.0.0.1  www.icwhich.com


下来还需要导出证书给JVM使用

二、导出证书

keytool -export -file E:/keys/icwhich.crt -alias icwhich -keystore E:/keys/icwhichkey


输入密钥库口令:

存储在文件 E:/keys/icwhich.crt中的证书

三、导入JVM

keytool -import -keystore "D:\Program Files\Java\jdk1.8.0_45\jre\lib\security\cacerts" -file E:/keys/icwhich.crt -alias icwhich

输入密钥库口令:
PS:这里的口令不是之前创建证书的口令,默认是changeit
所有者: CN=www.icwhich.com, OU=icwhich.com, O=icwhich.com, L=XIAN, ST=SHANNXI, C=CHINA
发布者: CN=www.icwhich.com, OU=icwhich.com, O=icwhich.com, L=XIAN, ST=SHANNXI, C=CHINA
序列号: 17a199ca
有效期开始日期: Wed Aug 19 09:54:37 CST 2015, 截止日期: Tue Nov 17 09:54:37 CST 2015
证书指纹:
MD5: C6:F1:A3:5B:BE:B6:E1:D4:14:74:50:5E:AB:88:CD:EF
SHA1: 6E:8C:1F:7C:6F:4A:5D:D0:E8:64:A5:EF:1C:BB:EB:63:DD:38:6E:DC
SHA256: 8C:D6:D8:80:8F:D8:8F:63:FE:25:21:D7:87:E3:4A:FA:59:16:B4:81:C5:D7:99:67:DB:A7:FE:8D:F0:A1:C8:3F
签名算法名称: SHA256withRSA
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: D4 04 D9 C0 A2 3D A1 39   04 B7 83 B7 A3 D1 E6 4D  .....=.9.......M
0010: DC 03 44 03                                        ..D.
]
]

是否信任此证书? [否]:  y
证书已添加到密钥库中


下来我们就可以把证书应用的Web服务器上了

四、应用证书

以Tomcat为例,开启SSL协议,把server.xml注释的部分修改为

<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />
-->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="E:/keys/icwhichkey" keystorePass="871124"/>


好了,到此Tomcat的SSL启用完成,现在启动tomcat试一下

打开浏览器输入

https://www.icwhich.com:8443/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: