美文网首页
6.2.2 客户端证书认证

6.2.2 客户端证书认证

作者: spbreak | 来源:发表于2016-03-01 19:41 被阅读84次

既然用户已经认证成功, 现在我们假设用户在这个认证请求中注册了设备. 在设备注册过程中, 应用必须存储认证服务返回来的证书. 如下

证书数据的成功的服务层响应

上述代码片段中返回的证书数据被编码成了 PKCS #12(.p12) 文件格式, 这是由 RSA Laboratories 发布的一种常用标准, 用于与客户端应用交换证书数据. 

解码 Base 64 .p12 数据, 提取出标识与证书信息, 并将它们存储起来以供后续的认证请求使用

在检索服务返回的 .p12 证书数据中的身份与证书时可能会出现异常.

使用 Security Framework 中的 SeePKCS12Import() 函数导入身份和信任, 然后提取出证书的过程

作为服务器与客户端 SSL 握手的一部分, willSendRequestForAuthenticationChallenge: 会在服务器信任与客户端证书认证挑战的过程中收到多个回调. 你需要确定应用该处理哪个挑战. 如下代码示例是对代码清单 6-1 的扩展, 用于确定应用是否应该发出客户端证书或是标准的用户凭证来进行认证:

在服务层, 可以通过 openssl_x509_parse() 函数检索到证书的属性. 在获取到证书属性后, 你还可以使用服务层的很多认证选项. 其中一个选项是验证请求发起人, 然后从已知的私钥列表中查找该用户. 另一个选项是在应用中使用 PIN 机制, 从而在向认证挑战发出客户端证书之前进行验证

NSURLConnection 会拦截带有不受信任证书的服务器响应, 这包括自签的 SSL 证书. 如果使用自签的 SSL 证书来测试本章介绍的认证机制, 那么大多数基于网络的代码都将无法执行. 不过, 将服务器证书 (.cer 文件扩展) 以邮件的形式发送给设备上配置好的 E-Mail 账户, 就可以单击并安装证书了. 安装完毕后, NSURLConnection 请求就会将服务器证书看作受信的证书并会继续处理

相关文章

  • 6.2.2 客户端证书认证

    既然用户已经认证成功, 现在我们假设用户在这个认证请求中注册了设备. 在设备注册过程中, 应用必须存储认证服务返回...

  • 网络

    认证 ssl/tls 1.客户端证书认证 (TLS双向认证) CA #证书认证2.bearerToken3.Se...

  • Go 实现 TLS server 及client (1, TLS

    本系列文章包含以下内容 单向TLS不认证,客户端不检查服务端证书的有效性 单向TLS认证,客户端检查服务端证书的有...

  • HTTPSS证书制作笔记

    参考资料 Android HTTPS 自制证书实现双向认证 制作证书 使用证书 客户端使用 需要truststor...

  • Nginx 反向代理高级篇

    1. 双向认证 双向认证顾名思义:即客户端要验证服务端的证书是否合法,服务端也要验证客户端的证书是否合法,相对于单...

  • ssl认证

    单向认证 1.服务端向ca认证机构申请证书,获得公私钥和证书;2.客户端向服务端发送请求;3.服务端向客户端发送证...

  • Nginx ssl自签名证书双向认证以及Golang https

    先说双向认证吧,需要使用openssl生成相应的证书(根证书、服务端证书、多套客户端证书)。(建议在linux环境...

  • AFNetworking - AFSecurityPolicy类

    简单来说,AFSecurityPolicy的作用就是证书认证。 在https请求中,客户端会验证服务端的证书,但是...

  • MySQL启用SSL连接

    1.手动创建自认证证书 1.1 创建CA证书 1.2 创建服务端证书,去除加密,使用CA签名 1.3 创建客户端证...

  • https配置、双向验证、go代码实现

    原理 参照这里: 双向认证SSL原理,已经说的很详细了 证书生成 根证书生成 服务端证书生成 客户端证书生成 ng...

网友评论

      本文标题:6.2.2 客户端证书认证

      本文链接:https://www.haomeiwen.com/subject/mnzgkttx.html