#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
加密结果长度=密钥长度
DSA 签名长度固定为20byte
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。