首页 > 其他分享 >SSL证书的验证过程

SSL证书的验证过程

时间:2024-02-04 12:31:53浏览次数:25  
标签:浏览器 验证 CA 证书 颁发 SSL 域名

HTTPS是工作于SSL层之上的HTTP协议,SSL(安全套接层)工作于TCP层之上,向应用层提供了两个基本安全服务:认证和保密。SSL有三个子协议:握手协议,记录协议和警报协议。其中握手协议实现服务器与客户端的认证与密钥交换,记录协议进行数据加密并保证数据的完整性,警报协议则规定了错误类型和处理机制。

从第一部分HTTP工作原理中,我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密码。在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似,是一个支持HTTPS网站的身份证明,SSL证书里面包含了网站的域名,证书有效期,证书的颁发机构以及用于加密传输密码的公钥等信息,由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要先核对当前访问的域名与证书上绑定的域名是否一致,同时还要对证书的颁发机构进行验证,如果验证失败浏览器会给出证书错误的提示。

证书以证书链的形式组织,在颁发证书的时候首先要有根CA机构颁发的根证书,再由根CA机构颁发一个中级CA机构的证书,最后由中级CA机构颁发具体的SSL证书。我们可以这样理解,根CA机构就是一个公司,根证书就是他的身份凭证,每个公司由不同的部门来颁发不同用途的证书,这些不同的部门就是中级CA机构,这些中级CA机构使用中级证书作为自己的身份凭证,其中有一个部门是专门颁发SSL证书,当把根证书,中级证书,以及最后申请的SSL证书连在一起就形成了证书链,也称为证书路径。在验证证书的时候,浏览器会调用系统的证书管理器接口对证书路径中的所有证书一级一级的进行验证,只有路径中所有的证书都是受信的,整个验证的结果才是受信。

SSL证书的验证过程包括以下几个步骤:

1.验证浏览器中“受信任的根证书颁发机构”是否存在颁发该SSL证书的机构。

2.检查SSL证书是否被颁发机构吊销,检查SSL证书中的证书吊销列表,如果已经被吊销,则会显示警告信息。

3.检查此SSL证书时间是否过期,检查网站SSL证书的有效期限,如果证书已经过了有效期,则会显示警告信息。

4.检查网站的域名是否与证书中域名一致,检查部署此SSL证书的网站的域名是否与证书中的域名一致,如果不一致,则浏览器也会显示警告信息。

5.查询此网站是否被列入欺诈黑名单。

SSL证书的验证过程_SSL

标签:浏览器,验证,CA,证书,颁发,SSL,域名
From: https://blog.51cto.com/u_15507630/9582628

相关文章

  • Github登录 2FA(Two-Factor Authentication/两因素认证) 浏览器插件-已验证
    Github登录2FA(Two-FactorAuthentication/两因素认证)浏览器插件-已验证chrome装下这个扩展身份验证器https://chromewebstore.google.com/detail/身份验证器/bhghoamapcdpbohphigoooaddinpkbai?pli=1装好以后,到登录的页面,有个二维码,用这个插件扫一下就能登录了,然后就有......
  • 验证回文串
    问题描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例1:输入:"Aman,aplan,acanal:Panama"输出:true示例2:输入:"raceacar"输出:false//算法思路:对撞指针。只不过要......
  • 验证回文字符串
    问题描述:给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例1:输入:"aba"输出:True示例2:输入:"abca"输出:True解释:你可以删除c字符。注意:字符串只包含从a-z的小写字母。字符串的最大长度是50000。publicbooleanvalidPalindrome(St......
  • 大胆假设小心验证——cf_922_C. XOR-distance
    目录问题概述思路想法参考代码问题反思问题概述给出整数a、b、r,要求输出|(a^x)-(b^x)|的绝对值,其中0<=x<=r(取值都是[0,1e18])思路想法首先是一个位置关系,由于求的是绝对值,所以我们可以假定a>b;第二,我们要做的是异或操作,因此可以将a和b的二进制数写出来,结合异或的特点,可以发......
  • requests库请求出现 SSLCertVerificationError
    python使用requests库发送https请求报错:SSLCertVerificationError:[SSL:CERTIFICATE_VERIFY_FAILED]。requests库简单介绍:Requests是一常用的http请求库,它使用python语言编写,可以很方便地发送http请求及处理响应结果。Requests允许你发送纯天然,植物饲养的HTTP/1.1请求,无需......
  • 如何在 JavaScript 中验证 URL
    如何在JavaScript中验证URL统一资源定位符URL(UniformResourceLocator)引导你进入互联网上的一个页面或文件。URL是互联网上事物的地址。所有有效的URL都遵循某些模式。因此,如果你知道这些模式,你就可以在你的程序中确定一个URL是否有效,并给出反馈、抛出一个错误,等等。......
  • file_get_contents 避免出现按个 ssl -60 的报错 ,不进行数据验证 或者 使用php.ini 进
    1,使用不去验证数据$stream_opts=["ssl"=>["verify_peer"=>false,"verify_peer_name"=>false,]];$user_info=json_decode(file_get_contents($user_info_url,false,stream_context_create($stream_opts)));2,配置php.ini......
  • nginx配置ssl证书
    ###1.下载证书选nginx,证书和秘钥文件。2.放置服务器上创建文件夹,可放在nginx的目录下。上传文件。mkdircertroot@hecs-139923:/etc/nginx/cert#lltotal16drwxr-xr-x2rootroot4096Feb209:15./drwxr-xr-x9rootroot4096Feb211:52../-rw-r--r--1roo......
  • Let’s Encrypt申请泛域名证书
    域名分为主域名test.com和泛域名*.test.com如果又很多子域名,每个都要配置证书。这也太麻烦了。所以这次我们来学习如何搞泛域名证书。申请证书执行证书生成命令,过程中根据命令提示,去云服务商后台增加一条dns,并将certbot生成的参数填写到dns配置的相关位置。certbotcer......
  • 解决Python报错SSLError,如果试了网上一大堆方法还不行,看看这个吧!!
    前言这个问题困扰了群友一天,我怀着好奇心去试试看,不到5分钟给解决了哈哈。报错代码报错代码中对相关的host和url进行了替换,大家在网上发布内容也要注意隐私哈,多长个心眼子总没错。requests.exceptions.SSLError:HTTPSConnectionPool(host='xxx.com',port=443):Maxretries......