一、创建证书
因为是测试用所以用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/