基于android的app开发 如何用Tomcat和Openssl构建HTTPS双向认证环境?
如何用Tomcat和Openssl构建HTTPS双向认证环境?
配置前,直接淘宝:gworg获取公网信任证书。配置Tomcat以支持HTTPS的双向身份验证(服务器将对客户端证书进行身份验证):修改服务器.xml文件($Tomcat)uhome/conf/服务器.xml)事实上,HTTPS的单向和双向身份验证配置的唯一区别是将clientauth更改为false,并删除truststore的相关配置,即单向HTTPS身份验证。单向HTTPS可能会被更多地使用。主要需要在浏览器与f服务器交互的HTTP中进行加密,但不需要在客户端证书不需要验证的情况下进行加密。)完成上述配置后,重启tomcat,服务器支持HTTPS的双向认证。
https单向认证和双向认证的区别?
1. 不同的安全性:
单向身份验证只需要站点部署SSL证书,任何用户都可以访问它(IP受限制的情况除外),但服务器提供身份验证。双向认证是指服务器需要客户端提供身份认证,只有服务器允许的客户端才能访问。安全性高于客户端。
2. 不同的用途:
一般web应用采用单向认证,原因很简单,用户数量广,而且不需要在通信层做用户认证,一般在应用逻辑层保证用户合法登录。但是,如果是企业应用对接,情况就不同了,可能需要对客户端(相对来说)进行身份验证。此时,我们需要做双向身份验证。
3. 不同要求:双向认证SSL协议的具体通信过程,要求服务器和客户端都有证书。单向身份验证SSL协议不要求客户机拥有CA证书,在协商对称密码方案和对称调用密钥时,服务器向客户机发送一个未加密(不影响SSL进程的安全)密码方案。
扩展信息:
SSL双向身份验证客户端发送和接收的握手信号:
发送客户端Hello消息,解释加密算法列表、压缩方法和它支持的最大协议版本,并发送随机数供以后使用。
然后,将收到一条服务器Hello消息,该消息包含服务器选择的连接参数,并来自客户端在开始时提供的客户端Hello。
当双方都知道连接参数时,客户端和服务器将交换证书(取决于选定的公钥系统)。这些证书通常基于X.509,但是有些草稿支持基于OpenPGP的证书。
服务器请求客户端的公钥。客户端有一个证书,即双向身份验证。当没有证书时,将随机生成公钥。客户端和服务器端通过公钥保密机制协商公共主密钥(双方随机协商),通过精心设计的伪随机数函数实现。结果可以使用Diffie-Hellman交换,或者简化的公钥加密,双方都用私钥解密。
此“主密钥”用于加密所有其他关键数据。在数据传输中,记录层用来封装HTTP等更高级的协议。记录层数据可以随意压缩加密,并与报文验证码一起压缩。每个记录层包都有一个内容类型段,用于记录较高层使用的协议。
参考源:
基于android的app开发 双向认证是什么意思 单向认证和双向认证
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。