zoukankan      html  css  js  c++  java
  • HTTPS 双向认证构建移动设备安全体系

    HTTPS 双向认证构建移动设备安全体系

    对于一些高安全性要求的企业内项目,我们有时希望能够对客户端进行验证。这个时候我们可以使用Https的双向认证机制来实现这个功能。

    单向认证:保证server是真的,通道是安全的(对称密钥);
    双向认证:保证client和server是真的,通道是安全的(对称密钥);

    要实现这么一个完整的安全体系,需要一个CA或者openssl自建CA来管理签发客户端证书。作为项目要求的场景可能是这样的,一个前端网站专门用于签发证书,通过电子邮件发送下载客户端证书邮件到移动端,用户点击邮件里的链接下载证书,一次性有效,无法重复下载。

    移动端应用可以继续使用帐号登录,服务端会验证帐号与客户端证书的对应关系,这样就实现了用户帐号和设备的绑定,用户帐号只能在安装了用户的客户端证书的移动端登录。

    这里技术细节在于nginx 对通过客户端证书的验证的请求,对其add_header 把客户端证书的信息带入后端。服务器在请求处理之前先验证用户与客户端证书对应关系是否正确,正确才进行后续处理。

    nginx中设置ssl_client_certificate 到你的CA证书路径 ,这样nginx只会接收已被签发的客户端证书.

    启用ssl_verify_client,则开启双向认证.

    nginx中存在一些变量可以使用$ssl_client_cert (full certificate), $ssl_client_s_dn (the subject name of the client certificate),$ssl_client_serial (the serial number your CA has issued for their certificate) $ssl_client_verify (which you should check for SUCCESS).我们都过add_header可以把这些变量带到后端服务器上处理

  • 相关阅读:
    mplayer命令行模式下的使用方法
    CentOS安装wireshark
    CentOS查看系统信息
    测试理论1
    单例模式
    接口测试
    rabbitmq
    redis数据库
    时间模块
    charles抓取数据
  • 原文地址:https://www.cnblogs.com/yuzukwok/p/4593157.html
Copyright © 2011-2022 走看看