首页 > 其他分享 >详解SSL证书系列(9)SSL客户端认证

详解SSL证书系列(9)SSL客户端认证

时间:2024-04-03 15:22:57浏览次数:14  
标签:证书 认证 SSL 详解 服务器 本人 客户端

上一篇介绍了HTTPS和HTTP协议的区别,理解了HTTP加上加密处理和认证以及完整性保护后即是HTTPS,同时HTTPS也是身披SSL外壳的HTTP,那么SSL客户端认证是怎么回事呢?这篇文章我将带领大家来了解一下。
某些Web页面只想让特定的人浏览,或者干脆仅本人可见,为达到这个目标,必不可少的就是认证功能。

何为认证

计算机本身无法判断坐在显示器前的使用者的身份。进一步说,也无法确认网络的那头究竟有谁。可见,为了弄清究竟是谁在访问服务器,就得让双方的客户端自报家门。 可是,就算正在访问服务器的对方声称自己是ueno,身份是否属实这点也无从谈起,为确认ueno本人是否真的具有访问系统的权限,就需要核对“登录者本人才知道的信息”,“登录者本人才会有的信息”。 核对的信息通常是指以下这些:
  • 密码:只有本人才知道的字符串信息。
  • 动态令牌:仅限本人持有的设备内显示的一次性密码。
  • 数字证书:仅限本人(终端)持有的信息。
  • 生物认证:指纹和虹膜等本人生理信息。
  • IC卡等:仅限本人持有的信息。
但是,即便对方是假冒的用户,只要能通过用户验证,那么计算机就会默认是出自本人的行为。因此,掌控机密信息的密码绝不能让他人得到,更不能轻易就被破解出来。

HTTP常用的几种认证方式

HTTP/1.1使用的几种认证方式有:
  • BASIC认证(基本认证)
  • DIGEST认证(摘要认证)
  • SSL客户端认证
  • FormBase认证(表单认证)
那么这篇文章我们主要介绍SSL客户端认证。

SSL客户端认证

从使用用户ID和密码的认证方式方面来讲,只要二者的内容正确,即可认证是本人的行为,但如果用户ID和密码被盗,就很有可能被第三者冒充,利用SSL客户端认证则可以避免该情况的发生。 SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。凭借客户端证书认证,服务器可确认访问是否来自已登录的客户端。

1,SSL客户端认证的认证步骤

为了达到SSL客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书。 1)接收到需要认证资源的请求,服务器会发送Certificate Request报文,要求客户端提供客户端证书。 2)用户选择将发送的客户端证书后,客户端会把客户端证书信息以Client Certificate报文方式发送给服务器。 0 3)服务器验证客户端证书验证通过后方可领取证书内客户端的公开密钥,然后开始HTTPS加密通信。  

2,SSL客户端认证采用双因素认证

在大多数情况下,SSL客户端认证不会仅依靠证书完成认证,一般会和基于表单认证组合形成一种双因素认证来使用。所谓双因素认证就是指,认证过程中不仅需要密码这一个因素,还需要申请认证者提供其它持有的信息,从而作为另一个因素,与其组合使用的认证方式。 换言之,第一个认证因素的SSL客户端证书用来认证客户端计算机,另一个认证因素的密码则用来确定这是用户本人的行为。通过双因素认证后,就可以确认是用户本人正在使用匹配正确的计算机访问服务器。  

3,SSL客户端认证必要的费用

使用SSL客户端认证需要使用客户端证书,而客户端证书需要支付一定费用才能使用。 虽然现在像阿里云和腾讯云等厂商提供免费证书,但是免费证书只有三个月有效期,到期后需要重新申请和部署,维护成本非常高,并且免费证书不支持申请通配符证书,导致如果有多个二级域名需要证书的时候,就需要申请和维护多个证书,也是非常地麻烦。   那么,针对SSL免费证书的不足和痛点,我开发并开源了一个平台:华迅FreeCert平台,支持免费的SSL证书,通配符证书的申请和托管,配合自动部署工具可以实现证书的自动化更新和部署,真正做到一次申请终身自动更新和自动部署,欢迎感兴趣的同学试用!  

标签:证书,认证,SSL,详解,服务器,本人,客户端
From: https://www.cnblogs.com/mcgrady/p/18112774

相关文章

  • fdisk -l命令有什么用?fdisk -l详解
    fdisk -l命令用于查看CentOS系统中所有硬盘及其分区的详细信息。该命令的输出会显示硬盘的大小、分区表结构、分区类型以及每个分区的起始和结束扇区等信息。 以下是一个典型的fdisk -l命令输出示例及其解释:Disk/dev/sda:478.9GB,478888853504bytes,935329792sect......
  • Quill文档(六):Parchment详解
    Parchment是Quill的文档模型。它是与DOM树并行的树形结构,并为内容编辑器(如Quill)提供有用的功能。Parchment树由Blots组成,这些Blots镜像了DOM节点的对应物。Blots可以提供结构、格式和/或内容。Attributors还可以提供轻量级格式信息。注意:您不应使用new直接......
  • Lombok常用注解详解: val, @Cleanup, @RequiredArgsConstructor
    From: https://blog.csdn.net/hy6533/article/details/131030094从零开始SpringBoot35:Lombok图源:简书(jianshu.com)Lombok是一个java项目,旨在帮助开发者减少一些“模板代码”。其具体方式是在Java代码生成字节码(class文件)时,根据你添加的相关Lombok注解或类来“自动”添加......
  • 守望先锋/暴雪客户端下载卡45%和97%原因解决
    最近网瘾犯了想OW一把,就下回来玩玩,结果暴雪客户端一直显示updatingbattle.net...(99%)后来发现是原来卸载的时候留存的配置没有删干净。解决办法删除以下路径中的残留配置文件C:\ProgramData下,Battle.net,Battle.net_components,BlizzardEntertainmentC盘用户路径下,找到......
  • GitHub新手用法详解
    GitHub是全球最大的代码托管平台,提供了强大的版本控制和协作功能。无论是个人项目还是团队协作,GitHub都是一个非常实用的工具。本文将为GitHub新手提供一个快速入门指南。基础概念在开始之前,让我们先了解几个基本概念:仓库(Repository):存储项目代码的地方,可以包含文件、文件......
  • NRM详解
    1.nrm是什么nrm(NPMregistrymanager)是npm的镜像源管理工具,使用它可以快速切换npm源。什么意思呢,npm默认情况下是使用npm官方源(使用npmconfigls命令可以查看),在国内用这个源肯定是不靠谱的,一般我们都会用淘宝npm源:https://registry.npm.taobao.org/,修改源的......
  • 【Docker】专题六:Docker Registry 详解
    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!目录一、基本介绍二、Registry创建方法三、Registry常用API请求四、Registry镜像清理一、基本介绍笔者在【Docker】专题一:Docker基本架构 中介绍......
  • 大模型中常用的注意力机制GQA详解以及Pytorch代码实现
    分组查询注意力(GroupedQueryAttention)是一种在大型语言模型中的多查询注意力(MQA)和多头注意力(MHA)之间进行插值的方法,它的目标是在保持MQA速度的同时实现MHA的质量。这篇文章中,我们将解释GQA的思想以及如何将其转化为代码。GQA是在论文GQA:TrainingGeneraliz......
  • 详解Assertion desc failed at src/libswscale/swscale_internal.h:668
    目录详解Assertiondescfailedatsrc/libswscale/swscale_internal.h:668错误原因解决方案1.检查输入参数2.升级FFmpeg版本3.检查编译选项4.优化代码5.寻求帮助结论详解Assertiondescfailedatsrc/libswscale/swscale_internal.h:668在使用FFmpeg进行视......
  • IP知识详解
    IP基本认识IP在TCP/IP参考模型中处于第三层,也就是网络层。网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(endtoend)通信。网络层与数据链路层有什么关系呢?IP的作用是主机之间通信用的MAC的作用则是实现「直连」的两个设备之间通信IP则负责在「没有......