此文讲述证书的相关信息,参考文章链接http://www.guokr.com/post/116169/

一、 证书的类型

常用的几种证书如下:

  (1) SSL证书,用于加密HTTP

  (2) 代码签名证书,用于签名二进制文件,比如Windows内核驱动,Firefox插件,Java代码签名等等。

  (3) 客户端证书,比如用于加密邮件等

  (4) 双因素证书,网银专业版使用的USB Key里面用的就是这种类型的证书。

证书的格式是由X.509标准定义的。

这些证书需要由受认证的证书颁发机构(通常称为CA机构)进行颁发,由CA颁发的证书都是受信任的。企业和个人都可以申请证书,根据证书的类型以及时间等因素。收费也是不一样的。

二、向CA申请证书

一般企业的证书比个人的费用要高,申请证书的时候是有有效期的,有效期过了以后,需要重新申请。

在申请证书的时候,需要提供网站的域名,提供域名的时候需要证明申请人对域名有所有权。一般来说一个证书只能绑定一个域名,只有在访问这个域名的时候,此证书才是受信任的。另外域名中可以带通配符*,但是这样的证书比较贵。百度的证书就是带通配符的(如图1)。颁发给中的通用名就是申请证书时填写的域名,颁发者的通用名就是颁发机构。若里面有“Extended Validation SSL”的字样,表明了这个证书是一个EV SSL证书(扩展验证SSL证书),EV SSL证书有个特点就是可以让浏览器的地址栏变绿,同时显示出来证书所属公司的名称。有效期中的两个时间就是证书生效时间和实效时间。申请证书的时候除了提供域名之后,还需要提供营业执照以及身份信息等。

图1

三、证书的验证过程

证书以证书链的形式组织,在颁发证书的时候首先要有根CA机构颁发的根证书,再由根CA机构颁发中级CA机构的证书,最后由中级CA机构颁发SSL证书。在验证证书的时候也是一级一级验证的,只有所有的证书都是可信任的,这个SSl证书才会被浏览器信任。若根证书是不可信的,则他下面颁发的所有证书都是不可信的。下图展示了证书路径:

四、证书不被浏览器信任的几个原因

  (1) 证书过期

  (2) 证书中的域名与访问的域名不一致

  (3) 颁发机构不受信任

【HTTPS】Https和SSL学习笔记(二)的更多相关文章

  1. Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  2. Typescript 学习笔记二:数据类型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  3. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  4. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  5. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  6. 转)delphi chrome cef3 控件学习笔记 (二)

    (转)delphi chrome cef3 控件学习笔记 (二) https://blog.csdn.net/risesoft2012/article/details/51260832 原创 2016 ...

  7. Lamda表达式学习笔记二

    Lamda表达式学习笔记二 lamda表达式----方法引用 上一篇讲到Lamda体就是对函数式接口方法的实现 ,在方法体中我们可能会引用其他方法实现逻辑,所以在lamda体中我们可以直接引用器方法 ...

  8. Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer

    作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...

  9. 微信小程序学习笔记二 数据绑定 + 事件绑定

    微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...

  10. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

随机推荐

  1. [iOS基础控件 - 6.7] 微博展示 使用代码自定义TableCell(动态尺寸)

    A.需求 1.类似于微博内容的展示 2.头像 3.名字 4.会员标志 5.内容 6.分割线 7.配图(可选,可有可无)   code source: https://github.com/hellov ...

  2. prestashop二次开发 笔记(支付插件)

    //主函数 public function __construct() { $this->name = 'CilPay';    //模块名称         $this->display ...

  3. Stage3D学习笔记(七):动态纹理

    本章用来作为Starling的滤镜实现原理的一个补充,但是为了了解原理,我们会使用原生API进行编码. 我们知道,当我们调用drawTriangles方法时,我们的图像是绘制到后台缓冲区的,只有调用p ...

  4. Oracle- 备份单表结构和单表数据

    在网上看到,有用,记录如下: 这是Oracle的备份表结构和数据,因为实际工作对表进行大规模的数据改动都要讲数据进行备份,否则丢了数据那是很头疼的事情. --创建一份表结构 create table ...

  5. MATLAB学习拾遗

    1.坐标轴修饰 axis equal:axis([0,6,0,6]) 不修饰则为默认网格 grid on 2.不太漂亮的pretty命令 3. Laplace变换 syms t s a b f1=ex ...

  6. SQLite使用教程4 附加数据库

    http://www.runoob.com/sqlite/sqlite-attach-database.html SQLite 附加数据库 假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中 ...

  7. cocos2d-x 手势之简单实现

    转自:http://blog.sina.com.cn/s/blog_61ece099010187tl.html 手势之前也发过一篇,但是我感觉那个还不够轻巧. 而且大多数游戏里面不会有那么复杂的手势, ...

  8. CocoaPods使用命令

    5.需要在工程中创建一个Podfile文件, 使用命令: $cd /Users/shiyunlei/Desktop/CocoapodsSample(进入工程目录,cd后面的是工程的路径) $ touc ...

  9. C# Redis Server分布式缓存编程(二)

    在Redis编程中, 实体和集合类型则更加有趣和实用 namespace Zeus.Cache.Redis.Demo { public class Person { public int Id { g ...

  10. 2013 ACM/ICPC Asia Regional Changsha Online J Candies

    AC了,但是不知道为什么,但是恶心的不得了~最近写代码,思路都非常清晰,但是代码各种bug~T.T~说说思路吧:二分~330ms~ 小队友fribbi的思路是离线250msAC~ 预处理solve函数 ...