开发者社区> EdgePlus> 正文

阿里云 CDN HTTPS 最佳实践——客户端证书认证

简介: 阿里云CDN HTTPS最佳实践系列文章,由CDN高防技术专家金九撰写
+关注继续查看

背景

我们在使用 HTTPS 时经常接触到的是服务器证书认证(单向认证),很少用到客户端证书认证(双向认证),这是因为对于 web 网站来说,用户数目广泛,使用服务器证书认证就够了,无需在 SSL 层做用户身份验证,对于需要验证的页面再在应用逻辑层来做用户身份验证(比如常见的账号密码登录),使用客户端证书认证反而影响用户体验。但是对于一些特殊企业客户,在涉及到资金、股票等等金融业务交易时,考虑到其业务的安全性,他们在原有业务可能已经用了客户端证书认证,对于这类客户在接入 CDN 时,必然也要支持客户端证书认证。

简单来说,客户端证书认证就是在单向认证 SSL 握手流程中加入了两个流程:

  1. 服务器发送 Certificate Request 消息,表明本次 SSL 握手需要做客户端证书认证(如下图第3步)。
  2. 客户端收到服务器发送的 Certificate Request 消息后,需要将客户端证书通过 Certificate 消息发送给服务器(如下图第4步)。服务器收到该消息时会对客户端证书做合法性校验,包括:客户端证书是否过期,发行该证书的 CA 是否可信,用其 CA 公钥对该证书的签名做校验是否成功,该证书是否已经被吊销。若其合法性校验成功则继续后面的握手流程,否则服务器会握手失败并中断连接。

https6_1

但是,如果客户端没有发送客户端证书,服务器也会握手成功,这就需要在应用程序中做判断是否有客户端证书,若客户端没有发送则要关闭连接并清除 session 缓存(代码请参考 Tengine 的 ngx_http_process_request 函数)。

实现

Tengine 是很容易配置客户端证书认证的,相关的几个指令如下:

ssl_verify_client        on;   #是否启用客户端证书认证
ssl_verify_depth         1;    #对客户端证书证书链的认证深度
ssl_client_certificate   /opt/tengine/conf/xxx.crt;  #指定用于校验客户端证书的CA证书

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云ACA证书含金量、阿里云ACA认证有用吗?
阿里云在国内云服务市场占有率阿里云的市场占有率超过第2-5名的总和,ACA证书现在已经是众多企业招聘JD中的加分项,拥有ACA证书的人才在招聘市场供不应求。其生态圈有几十万家企业需要相关人才。所以拥有证书不仅是你的敲门砖,更是你就业拿高薪的加分项。因此,如果是在国内的企业寻找工作机会,考取阿里云的相关认证则具备很高的含金量。
551 0
一文带你彻底厘清 Kubernetes 中的证书工作机制
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 接触 Kubernetes 以来,我经常看到 Kubernetes 在不同的地方使用了证书(Certificate),在 Kubernetes 安装和组件启动参数中也需要配置大量证书相关的参数。
786 0
阿里云acp认证考试题库是什么样子的,acp证书好考吗?
如今,电商竞争是越来越激烈了。各路电商英雄豪杰加入电商大战,颇有三国时期诸国混战的架势。虽然阿里的地盘逐渐被瓜分,竞争对手也是越来越强大,虽然土地被分走了,但是阿里巴巴的业务何止天猫、淘宝,阿里巴巴的触角已经伸向电商的每个角落。对于想从事电商的人来说,能够获得官方的认证是件极好的事儿。今天就与大家介绍关于阿里巴巴认证和阿里巴巴认证考试题库。
156 0
Spring Security笔记:HTTP Basic 认证
在第一节 Spring Security笔记:Hello World 的基础上,只要把Spring-Security.xml里改一个位置 1 2 3 4 注意第三行,加上后,再次访问/admin,会弹出下面的对话框: 有...
1456 0
检查HTTP 的 Basic认证代码示例-JSP
检查HTTP 的 Basic认证. since http1.0 代码如下所示: R U OK? R U OK? . Your Password is 请参考代码中的注释,具体信息,还可以参考《图解HTTP》。
810 0
nginx用户认证配置( Basic HTTP authentication)
ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到。nginx的http auth模块以及Apache http auth都是很好的解决方案。
1057 0
+关注
EdgePlus
阿里云产品运营,专注边缘计算和视频云产品与技术传播
528
文章
59
问答
来源圈子
更多
+ 订阅
相关文档: 边缘云节点
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载