ssl证书验证

当我们在访问https网站时,浏览器就会自动下载该网站的SSL证书,并对证书的安全性进行检查。

其他概念不说了,有效期之类的验证也不说了。只说数字证书的真实性可信性验证。

  1.CA下发给网站的证书是分层的证书链,从根证书开始一层一层直到网站证书。要验证某一层证书是否确实由上级CA发放的需要验证附带在该证书上的由上级CA通过签名函数及私钥生成的数字签名。数字签名的解密需要上级CA的公钥,这个公钥就明文保存在证书链中的上层证书中。而根证书是自己给自己签名,也就是根证书的签名也是靠自己保存的公钥来解密。这就解决了真实性问题,也就是能证明最底层的网站证书确实是证书中标明的CA发放的。(由于证书是分等级的,网站拥有 者可能从根证书颁发机构领到证书,也可能从根证书的下一级(如某个国家的认证中心,或者是某个省发出的证书)领到证书。假设我们正在访问某个使用 了 SSL技术的网站,IE浏览器就会收到了一个SSL证书,如果这个证书是由根证书颁发机构签发的,IE浏览器就会按照下面的步骤来检查:浏览器使用内置的根证书中的公钥来对收到的证书进行认证,如果一致,就表示该安全证书是由可信任的颁证机构签发的,这个网站就是安全可靠的;如果该SSL证书不是根服 务器签发的,浏览器就会自动检查上一级的发证机构,直到找到相应的根证书颁发机构,如果该根证书颁发机构是可信的,这个网站的SSL证书也是可信的。)

(对方是不是上述证书的合法持有者。简单来说证明对方是否持有证书的对应私钥。验证方法两种,一种是对方签个名,我用证书验证签名;另外一种是用证书做个信封,看对方是否能解开)附带在证书后面的数字签名到底是上级ca签的,还是该证书自己签的?

  2.而可信性是看根证书是否在操作系统或浏览器内置的根证书列表中,如果在的话那么这个证书链就可信的。

时间: 2024-10-21 11:40:34

ssl证书验证的相关文章

HTTPS请求 SSL证书验证

import urllib2 url = "https://www.12306.cn/mormhweb/" headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"} request = urllib2.Request(ur

Xposed+JustTrustMe关闭ssl证书验证

安卓手机需要Root,该方法有手机变砖风险,建议在模拟器下操作!! XposedInstaller(xposed框架)是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作. JustTrustMe是Github上的一个开源工程,他是一个Xposed模块,用来禁止SSL证书验证. 下载地址:xposedinstaller.apk:https://www.lanzous.com/iafcw5eJustTrustMe.a

vdsm的SSL证书验证过程

1. Copy the VDSM certificate of the RHEV-H(Red Hat Enterprise Virtualization Hypervisor ) host to the RHEV-M machine. This certificate should be in the host, inside the file /etc/pki/vdsm/certs/vdsmcert.pem. 译:复制虚拟机管理平台主机的vdsm证书到虚拟机管理中心的机器上,这个证书的位置在/

python2/3 https忽略ssl证书验证

import ssl ssl._create_default_https_context = ssl._create_unverified_context InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised

HTTPS那些事(二)SSL证书

转自:http://www.guokr.com/post/116169/ 从第一部分HTTPS原理中, 我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密码.在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似,是一个支持HTTPS网站的身份证明,SSL证书里面包含了网站的域名,证书有效期,证书的颁发机构以及用于加密传输密码的公钥等信息,由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要先核对当前访问的

HTTPS那些事(二)SSL证书(转载)

原创地址:http://www.guokr.com/post/116169/   从第一部分HTTP工作原理中,我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密码.在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似,是一个支持HTTPS网站的身份证明,SSL证书里面包含了网站的域名,证书有效期,证书的颁发机构以及用于加密传输密码的公钥等信息,由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要先核对当

Gerrit增加SSL证书

在http的基础上增加SSL 配置gerrit.config文件 [gerrit] basePath = git canonicalWebUrl = https://172.16.99.212/ ...... [httpd] listenUrl = proxy-https://127.0.0.1:8081/ 只需要把红色标记的两个地方改掉即可(172.16.99.212是主机Ip,不需要加端口号). 配置apache代理(/etc/httpd/conf/httpd.conf) <VirtualH

SSL证书必知必会:数字证书及CA基础知识

SSL证书必知必会:数字证书及CA基础知识 数字证书 数字证书是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字***,而是身份认证机构盖在数字***上的一个章或印(或者说加在数字***上的一个签名).它是由权威机构--CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份.最简单的证书包含一个公开密钥.名称以及证书授权中心的数字签名.数字证书的一个重要的特征就是只在特

(二)、SSL证书

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