2 Star 1 Fork 0

zhrun8899 / learning-notes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
genkey.md 4.97 KB
一键复制 编辑 原始数据 按行查看 历史
zhrun8899 提交于 2018-11-13 15:38 . the first commit

#1:什么是HTTPS?

HTTPS其实是有两部分组成:HTTP + SSL / TLS,

也就是在HTTP上又加了一层处理加密信息的模块,并且会进行身份的验证。

问题:

Firebug和postman之类的浏览器调试工具,为什么获取到的是明文?

解答:

SSL是对传输的数据进行加密,针对的是传输过程的安全。

firebug之类的浏览器调试工具,因为他们得到的是客户端加密之前解密之后的数据,因此是明文的。

#2:什么是自签名证书?

就是自己生成的证书,并不是官方生成的证书。

除非是很正式的项目,否则使用自己签发的证书即可,因为官方生成证书是要花钱滴。 #3.使用JDK自带工具KeyTool 生成自签发证书

##第一步:为服务器生成证书 keytool -genkey -alias mpos -keypass elink@D18 -keyalg RSA -keysize 2048 -validity 3650 -keystore mpos.keystore -storepass elink@D18

λ keytool -genkey -alias mpos -keypass elink@D18 -keyalg RSA -keysize 2048 -validity 3650 -keystore mpos.keystore -storepass elink@D18 您的名字与姓氏是什么? [Unknown]: www.elmpos.com 注意:这里输入网站https://www.elmpos.com 您的组织单位名称是什么? [Unknown]: webimation 您的组织名称是什么? [Unknown]: webimation 您所在的城市或区域名称是什么? [Unknown]: taiyuan 您所在的省/市/自治区名称是什么? [Unknown]: shanxi 该单位的双字母国家/地区代码是什么? [Unknown]: CN

Warning: JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore mpos.keystore -destkeystore mpos.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

##第二步:为客户端生成证书

为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成:

keytool -genkey -alias client -keypass elink@D18 -keyalg RSA -keysize 2048 -validity 3650 -storetype PKCS12 -keystore client.p12 -storepass elink@D18 ##第三步:让服务器信任客户端证书

###1、客户端证书导出为cer文件 由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

keytool -export -alias client -keystore client.p12 -storetype PKCS12 -keypass elink@D18 -file client.cer

注意:Keypass:指定CER文件的密码,但会被忽略,而要求重新输入

###2、添加为信任证书 将该文件导入到服务器的证书库,添加为一个信任证书:

keytool -import -v -file client.cer -keystore mpos.keystore -storepass elink@D18 ###3.完成之后通过list命令查看服务器的证书库,

可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

keytool -list -v -keystore mpos.keystore ##第四步:让客户端信任服务器证书

###1、服务器证书添加到浏览器的“受信任的根证书颁发机构” 由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览器的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:

keytool -keystore mpos.keystore -export -alias mpos -file server.cer

###2、安装证书

双击server.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。 填入方法: 打开浏览器 - 工具 - internet选项-内容- 证书-把中级证书颁发机构里的www.localhost.com(该名称即时你前面生成证书时填写的名字与姓氏)证书导出来-再把导出来的证书导入 受信任的根颁发机构 就OK了。 ##第五步:配置Tomcat服务器

属性说明:

*clientAuth:*设置是否双向验证,默认为false,设置为true代表双向验证

*keystoreFile:*服务器证书文件路径

*keystorePass:*服务器证书密码

*truststoreFile:*用来验证客户端证书的根证书,此例中就是服务器证书

*truststorePass:*根证书密码

注意:

① 设置clientAuth属性为True时,需要手动导入客户端证书才能访问。

② 要访问https请求 需要访问8443端口,访问http请求则访问Tomcat默认端口(你自己设置的端口,默认8080)即可。 3.文件 mpos.keystore,server.cer,client.cer均需要放到/conf目录下. https访问地址:https://192.168.0.116:8443/pay http访问地址:http://192.168.0.116:8021/pay

摘要算法与长度

MD5:16(8BYte) SHA1:20byte

rsa 密钥长度与加密结果长度

加密结果长度=密钥长度

DSA 签名长度

DSA 签名长度固定为20byte

1
https://gitee.com/zhrun8899/learning-notes.git
git@gitee.com:zhrun8899/learning-notes.git
zhrun8899
learning-notes
learning-notes
master

搜索帮助