工具:keytool (Windows下路径:%JAVA_HOME%/bin/keytool.exe)

环境:Windows8.1企业版、Tomcat-7.0.27、JDK1.6、IE11、Chrome
一、为服务器生成证书
C:\Windows\system32>keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: StoneXing
您的组织单位名称是什么?
[Unknown]: iFLYTEK
您的组织名称是什么?
[Unknown]: iFLYTEK
您所在的城市或区域名称是什么?
[Unknown]: 合肥市
您所在的州或省份名称是什么?
[Unknown]: 安徽省
该单位的两字母国家代码是什么
[Unknown]: CN
CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=合肥市, ST=安徽省, C=CN 正确吗? [否]: y
正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 36,500 天):
CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=合肥市, ST=安徽省, C=CN
输入<tomcat>的主密码
(如果和 keystore 密码相同,按回车):
[正在存储 D:\tomcat.keystore]
C:\Windows\system32>
“D:\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore(可自定义名称);
“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天;
二、为客户端生成证书
1、生成客户端证书
C:\Windows\system32>keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\client.key.p12
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: StoneXing
您的组织单位名称是什么?
[Unknown]: iFLYTEK
您的组织名称是什么?
[Unknown]: iFLYTEK
您所在的城市或区域名称是什么?
[Unknown]: 合肥
您所在的州或省份名称是什么?
[Unknown]: 安徽省
该单位的两字母国家代码是什么
[Unknown]: CN
CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=合肥, ST=安徽省, C=CN 正确吗? [否]: y
正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 90 天):
CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=合肥, ST=安徽省, C=CN
[正在存储 D:\client.key.p12]
C:\Windows\system32>
生成的两个文件:
2、安装客户端证书
双击客户端证书“client.key.p12”完成导入证书过程如下:
三、让服务器信任客户端证书
1、将客户端证书导出为CER文件
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。因不能直接将PKCS12格式的证书库导入服务器证书库,将客户端证书导出为一个单独的CER文件
keytool -export -alias mykey -keystore D:\client.key.p12 -storetype PKCS12 -storepass password -rfc -file D:\client.key.cer
注:password为客户端证书的密码
C:\Windows\system32>keytool -export -alias mykey -keystore D:\client.key.p12 -storetype PKCS12 -storepass 888888 -rfc -file D:\client.key.cer 保存在文件中的认证 <D:\client.key.cer> C:\Windows\system32>
2、将CER文件导入到服务器的证书库
添加为一个信任证书使用命令如下:
C:\Windows\system32>keytool -import -v -file D:\client.key.cer -keystore D:\tomcat.keystore
输入keystore密码:
所有者:CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=合肥, ST=安徽省, C=CN
签发人:CN=StoneXing, OU=iFLYTEK, O=iFLYTEK, L=合肥, ST=安徽省, C=CN
序列号:52e07723
有效期: Thu Jan 23 09:57:55 CST 2014 至Wed Apr 23 09:57:55 CST 2014
证书指纹:
MD5:15:29:58:68:8D:63:E1:00:8E:E6:EC:5E:AD:23:79:38
SHA1:B7:EF:B9:67:BD:56:95:82:3D:D8:14:0D:20:69:F0:C8:60:98:31:9A
签名算法名称:SHA1withRSA
版本: 3
信任这个认证? [否]: y
认证已添加至keystore中
[正在存储 D:\tomcat.keystore]
C:\Windows\system32>
3、检查安装结果
通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:
keytool -list -keystore D:\tomcat.keystore (tomcat为你设置服务器端的证书名)。
C:\Windows\system32>keytool -list -keystore D:\tomcat.keystore 输入keystore密码: Keystore 类型: JKS Keystore 提供者: SUN 您的 keystore 包含 2 输入 tomcat, 2014-1-23, PrivateKeyEntry, 认证指纹 (MD5): 4B:71:06:02:7C:35:F8:BF:B1:24:E2:68:8F:65:75:15 mykey, 2014-1-23, trustedCertEntry, 认证指纹 (MD5): 15:29:58:68:8D:63:E1:00:8E:E6:EC:5E:AD:23:79:38 C:\Windows\system32>
四、让客户端信任服务器证书
1、把服务器证书导出为CER文件
由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:
keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer (tomcat为你设置服务器端的证书名)。
C:\Windows\system32>keytool -keystore D:\tomcat.keystore -export -alias tomcat -file D:\tomcat.cer 输入keystore密码: 保存在文件中的认证 <D:\tomcat.cer> C:\Windows\system32>
2、在客户端安装服务器证书
双击“tomcat.cer”,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。
3、检查安装结果
IE -> Internet选项 -> 内容 -> 证书
五、配置Tomcat服务器
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:\\tomcat.keystore" keystorePass="888888"
truststoreFile="D:\\tomcat.keystore" truststorePass="888888" />
注意服务端证书名保持一致
属性说明:
六、测试
https://localhost:8443/
服务器的证书与网址不相符问题需要理解浏览器做了什么:
1、浏览器将自己支持的一套加密规则发送给网站。
2、网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3、获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# tomcat
# https双向认证
# tomcat配置双向认证
# 关于Keytool配置 Tomcat的HTTPS双向认证的问题
# Tomcat服务器配置https认证(使用keytool生成证书)
# 客户端
# 安徽省
# 您的
# 合肥
# 合肥市
# 您所在
# 随机数
# 为你
# 不受
# 双击
# 自己的
# 期为
# 发送给
# 公钥
# 新密码
# 也要
# 要做
# 并将
# 或者是
# 可以看到
相关文章:
免费网站制作appp,免费制作app哪个平台好?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
建站之星如何实现五合一智能建站与营销推广?
家具网站制作软件,家具厂怎么跑业务?
济南企业网站制作公司,济南社保单位网上缴费步骤?
如何通过西部建站助手安装IIS服务器?
建站之星展会模板:智能建站与自助搭建高效解决方案
如何用y主机助手快速搭建网站?
如何通过FTP服务器快速搭建网站?
高端建站三要素:定制模板、企业官网与响应式设计优化
如何在服务器上三步完成建站并提升流量?
如何生成腾讯云建站专用兑换码?
简单实现Android验证码
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
学校为何禁止电信移动建设网站?
如何选择可靠的免备案建站服务器?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何续费美橙建站之星域名及服务?
建站之星代理如何优化在线客服效率?
如何制作算命网站,怎么注册算命网站?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
网站制作新手教程,新手建设一个网站需要注意些什么?
如何在IIS7上新建站点并设置安全权限?
如何零基础开发自助建站系统?完整教程解析
XML的“混合内容”是什么 怎么用DTD或XSD定义
如何批量查询域名的建站时间记录?
如何在阿里云通过域名搭建网站?
如何配置IIS站点权限与局域网访问?
Swift中switch语句区间和元组模式匹配
如何设置并定期更换建站之星安全管理员密码?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
南平网站制作公司,2025年南平市事业单位报名时间?
深圳网站制作的公司有哪些,dido官方网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何基于云服务器快速搭建个人网站?
手机网站制作与建设方案,手机网站如何建设?
广德云建站网站建设方案与建站流程优化指南
建站上市公司网站建设方案与SEO优化服务定制指南
建站之星北京办公室:智能建站系统与小程序生成方案解析
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
建站之星在线版空间:自助建站+智能模板一键生成方案
如何在IIS7中新建站点?详细步骤解析
焦点电影公司作品,电影焦点结局是什么?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
如何快速搭建响应式可视化网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
金*站制作公司有哪些,金华教育集团官网?
如何快速搭建高效WAP手机网站?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
如何通过VPS建站实现广告与增值服务盈利?
*请认真填写需求信息,我们会在24小时内与您取得联系。