HTTP/SSL/TSL 服务器客户端双向验证
2016-03-23 21:07
375 查看
以下命令需要在在windos dos命令窗口中执行
1、服务器生成密钥库
keytool -genkey -alias jason -keyalg RSA -keystore jason.keystore -validity 365
**alias jason 服务器密钥库别名 keyalg RSA 使用RSA算法 -keystore jason.keystore 生成的服务器密钥库的文件名称 validity 365 密钥库的有效期是354天**
输入密钥库口令: 123456
您的名字与姓氏是什么?
[Unknown]: www.jason.com
** www.jason.com 必须比你的网站同名 **
您的组织单位名称是什么?
[Unknown]: jason
您的组织名称是什么?
[Unknown]: jason
您所在的城市或区域名称是什么?
[Unknown]: SZ
您所在的省/市/自治区名称是什么?
[Unknown]: SZ
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=www.jason.com, OU=jason, O=jason, L=SZ, ST=SZ, C=CN是否正确?
[否]: Y
<br/>
2、服务器密钥库导出证书
keytool -export -alias jason -keystore jason.keystore -file jason.cer
输入密钥库口令:123456
存储在文件 <jason.cer> 中的证书
alias jason指出从哪别名密钥库导出 keystore jason.keystore 密钥库的名称 -file 导出证书的名称
将服务器的密钥库 jason.keystore 放入tomcat中的conf目录
打开tomcat 8443 默认的HTTPS协议端口 配置keystoreFile密钥库路径 keystorePass 密码
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="conf/mogubrother.keystore" keystorePass="123456"
clientAuth="true" sslProtocol="TLS"/>
再双击jason.cer证书 安装到浏览器中就实现浏览器对服务器的认证。
3、客户端生成密钥库
keytool -genkey -alias client -keyalg RSA -storetype PKCS12 -keystore client.key.p12
** alias client客户端密钥库别名 keyalg RSA 算法 storetype PKCS12 密钥库的类型 keystore client.key.p12 密钥库名称**
输入密钥库口令: 123456
再次输入新口令: 123456
您的名字与姓氏是什么?
[Unknown]: client
您的组织单位名称是什么?
[Unknown]: client
您的组织名称是什么?
[Unknown]: SZ
您所在的城市或区域名称是什么?
[Unknown]: SZ
您所在的省/市/自治区名称是什么?
[Unknown]: SZ
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=client, OU=client, O=SZ, L=SZ, ST=SZ, C=CN是否正确?
[否]: Y
4、客户端密钥库导出证书
keytool -export -keystore client.key.p12 -storetype PKCS12 -alias client -file client.key.cer
输入密钥库口令: 123456
存储在文件 <client.key.cer> 中的证书
5、客户端密钥导入服务器密钥库
keytool -import -file client.key.cer -keystore jason.keystore -v
输入密钥库口令:
所有者: CN=client, OU=client, O=SZ, L=SZ, ST=SZ, C=CN
发布者: CN=client, OU=client, O=SZ, L=SZ, ST=SZ, C=CN
序列号: 3cab0414
有效期开始日期: Tue Mar 22 22:55:55 CST 2016, 截止日期: Mon Jun 20 22:55:55 CST 2016
证书指纹:
MD5: C6:DC:8D:CF:A4:F9:B3:48:D4:33:0A:E8:13:8B:5E:41
SHA1: 4C:8B:13:7C:C2:62:86:36:54:36:25:37:08:9C:E0:1D:E1:04:D5:3B
SHA256: 3B:93:08:F8:6C:A1:1A:A0:68:29:16:EF:5C:B0:AB:B0:E7:07:48:16:95:B2:F2:17:E6:91:E8:90:1B:D7:79:3E
签名算法名称: SHA256withRSA
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A2 25 15 74 1A F6 93 C3 BC E5 C7 21 7B D1 01 8B .%.t.......!....
0010: 8C DB 5E F6 ..^.
]
]
是否信任此证书? [否]: Y
证书已添加到密钥库中
[正在存储mogubrother.keystore]
最后把添加客户端证书的密钥库在tomcat conf文件假中替换
添加tomcat 客户端配置
truststoreFile 导入了客户端证书的服务器密钥库
truststorePass 证书密码
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="conf/mogubrother.keystore" keystorePass="mogu1234"
clientAuth="true"
truststoreFile="conf/mogubrother.keystore" truststorePass="123456" sslProtocol="TLS"/>
双击client.key.p12 客户端密钥库安装到浏览器,就实现了服务器对客户端的验证
1、服务器生成密钥库
keytool -genkey -alias jason -keyalg RSA -keystore jason.keystore -validity 365
**alias jason 服务器密钥库别名 keyalg RSA 使用RSA算法 -keystore jason.keystore 生成的服务器密钥库的文件名称 validity 365 密钥库的有效期是354天**
输入密钥库口令: 123456
您的名字与姓氏是什么?
[Unknown]: www.jason.com
** www.jason.com 必须比你的网站同名 **
您的组织单位名称是什么?
[Unknown]: jason
您的组织名称是什么?
[Unknown]: jason
您所在的城市或区域名称是什么?
[Unknown]: SZ
您所在的省/市/自治区名称是什么?
[Unknown]: SZ
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=www.jason.com, OU=jason, O=jason, L=SZ, ST=SZ, C=CN是否正确?
[否]: Y
<br/>
2、服务器密钥库导出证书
keytool -export -alias jason -keystore jason.keystore -file jason.cer
输入密钥库口令:123456
存储在文件 <jason.cer> 中的证书
alias jason指出从哪别名密钥库导出 keystore jason.keystore 密钥库的名称 -file 导出证书的名称
将服务器的密钥库 jason.keystore 放入tomcat中的conf目录
打开tomcat 8443 默认的HTTPS协议端口 配置keystoreFile密钥库路径 keystorePass 密码
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="conf/mogubrother.keystore" keystorePass="123456"
clientAuth="true" sslProtocol="TLS"/>
再双击jason.cer证书 安装到浏览器中就实现浏览器对服务器的认证。
3、客户端生成密钥库
keytool -genkey -alias client -keyalg RSA -storetype PKCS12 -keystore client.key.p12
** alias client客户端密钥库别名 keyalg RSA 算法 storetype PKCS12 密钥库的类型 keystore client.key.p12 密钥库名称**
输入密钥库口令: 123456
再次输入新口令: 123456
您的名字与姓氏是什么?
[Unknown]: client
您的组织单位名称是什么?
[Unknown]: client
您的组织名称是什么?
[Unknown]: SZ
您所在的城市或区域名称是什么?
[Unknown]: SZ
您所在的省/市/自治区名称是什么?
[Unknown]: SZ
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=client, OU=client, O=SZ, L=SZ, ST=SZ, C=CN是否正确?
[否]: Y
4、客户端密钥库导出证书
keytool -export -keystore client.key.p12 -storetype PKCS12 -alias client -file client.key.cer
输入密钥库口令: 123456
存储在文件 <client.key.cer> 中的证书
5、客户端密钥导入服务器密钥库
keytool -import -file client.key.cer -keystore jason.keystore -v
输入密钥库口令:
所有者: CN=client, OU=client, O=SZ, L=SZ, ST=SZ, C=CN
发布者: CN=client, OU=client, O=SZ, L=SZ, ST=SZ, C=CN
序列号: 3cab0414
有效期开始日期: Tue Mar 22 22:55:55 CST 2016, 截止日期: Mon Jun 20 22:55:55 CST 2016
证书指纹:
MD5: C6:DC:8D:CF:A4:F9:B3:48:D4:33:0A:E8:13:8B:5E:41
SHA1: 4C:8B:13:7C:C2:62:86:36:54:36:25:37:08:9C:E0:1D:E1:04:D5:3B
SHA256: 3B:93:08:F8:6C:A1:1A:A0:68:29:16:EF:5C:B0:AB:B0:E7:07:48:16:95:B2:F2:17:E6:91:E8:90:1B:D7:79:3E
签名算法名称: SHA256withRSA
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A2 25 15 74 1A F6 93 C3 BC E5 C7 21 7B D1 01 8B .%.t.......!....
0010: 8C DB 5E F6 ..^.
]
]
是否信任此证书? [否]: Y
证书已添加到密钥库中
[正在存储mogubrother.keystore]
最后把添加客户端证书的密钥库在tomcat conf文件假中替换
添加tomcat 客户端配置
truststoreFile 导入了客户端证书的服务器密钥库
truststorePass 证书密码
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="conf/mogubrother.keystore" keystorePass="mogu1234"
clientAuth="true"
truststoreFile="conf/mogubrother.keystore" truststorePass="123456" sslProtocol="TLS"/>
双击client.key.p12 客户端密钥库安装到浏览器,就实现了服务器对客户端的验证
相关文章推荐
- 加载网络图片
- 网络编程基础
- oracle11G与10G网络通信差异
- iOS---对AFNetworking进行二次封装,使用单例单独处理网络请求数据
- iOS---对AFNetworking进行二次封装,使用单例单独处理网络请求数据
- python 网络编程之 UDP编程
- Linux网络配置基础及命令使用
- python 网络编程之 TCP编程
- IOS-小项目(饿了么 网络部分 简单实现)
- 【Android】基于TCP协议的网络通信
- 网络流24题之六 最长递增子序列
- 【网络协议】TCP连接的建立和释放
- 修改 http/https header
- 简单的Python网络爬虫程序
- [置顶] 网络请求以及网络请求下载图片的工具类 android开发java工具类
- AsyncTask下载网络图片
- 【Android】Android2.3版本以上谷歌为何推荐使用HttpURLConnection却弃用 Apache HttpClient
- 深入理解HTTP协议
- TCP通讯程序设计
- 完美配置Tomcat的HTTPS