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算法加密
回车输入以下信息:
如果没有域名可以在hosts虚拟一个域名地址,其实就是在
C:\Windows\System32\drivers\etc\hosts
添加一个静态路由
下来还需要导出证书给JVM使用
二、导出证书
输入密钥库口令:
存储在文件 E:/keys/icwhich.crt中的证书
三、导入JVM
下来我们就可以把证书应用的Web服务器上了
四、应用证书
以Tomcat为例,开启SSL协议,把server.xml注释的部分修改为
好了,到此Tomcat的SSL启用完成,现在启动tomcat试一下
打开浏览器输入
https://www.icwhich.com:8443/
因为是测试用所以用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/
相关文章推荐
- TCP和UDP的区别(转)
- iOS网络请求
- HTTP协议图片上传交互
- 子网划分的两个例子 怎么算网络号和广播地址
- 8月18日“.我爱你”域名总量:紫田网络排名跌至第十八
- TCP/IP、Http的区别
- 解决 schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/context
- [MFC学习笔记]--网络编程实际操作编写服务器端
- CentOS系统基于网络的PXE+Kickstart无人值守批量安装操作系统(二)
- Android与服务器端数据交互(http协议整合struts2+android)
- [MFC学习笔记]--网络编程理论知识
- TCP建立连接与释放连接过程中的几个问题
- TCP/IP详解 卷I:协议 のping和traceroute
- iOS 网络请求,参数中字典嵌套字典
- TCP/IP TIME_WAIT状态原理
- iOS 带cookie进行网络请求
- hdu 4292 Food【拆点网络流】
- Android Http请求方法汇总
- HTTP状态码详解
- C#-JudgeSystem判题系统-一个简单的HTTPServer