一、关于证书

数字证书是一种认证机制。简单点说,它代表了一种由权威机构颁发授权的安全标志。

由来

在以前,传统网站采用HTTP协议进行数据传输,所有的数据几乎都用的明文,很容易发生隐私泄露。为了解决安全问题,大家开始考虑采用加解密的方案,于是乎诞生了公钥加密(非对称加解密)及签名算法。浏览器从服务端得到公钥,经过协商并生成动态密钥,此后所有的请求响应都基于动态密钥加解密。然而对于浏览器而言,是不是所有声称了 HTTPS 的服务器都值得信任呢。答案是否定的,服务器必须提供一个凭证以证明自己值得信任,于是乎这就有了证书,通常的证书里面则包含了公钥。浏览器与服务器进行加密数据传输的前提是服务器证书受到信任,即存在于浏览器的受信任证书列表中。

二、PKI - 公钥基础设施

Public Key Infrastructure,是基于公开密钥技术所构建的,用以解决网络安全问题的通用基础平台。其服务范围包括公钥管理、提供认证、加密、完整性和可追究性服务。
PKI 几乎可以代言整个公钥技术体系标准。从概念上,PKI 涵盖了 PMI (权限管理),然而实质上 PKI 不仅如此,目前只要是基于公钥技术实现网络安全的所有协议、组件、服务等都从属于 PKI,包括上述的证书。

PKI 的关键元素:

1 数字证书 Certificate
2 证书签署机构 CA 及批准机构 RA
3 存储目录
4 证书策略、证书路径及使用者

三、CA - 证书授权中心

Certificate Authority,CA 是负责发放并管理数字证书的第三方权威机构,它负责管理 PKI 体系中的所有组织、个人、以及他们持有的的数字证书,将用户的公钥及用户的其他信息捆绑在一起,在网上验证用户的身份。CA机构的数字签名使得攻击者不能伪造和篡改证书。

CA 的层级结构

CA建立自上而下的信任链,下级CA信任上级CA,下级CA由上级CA颁发证书并认证
如github的证书层级:

CA 的功能:

证书颁发:接收、验证及受理用户(包括下级认证中心和最终用户)的数字证书的申请。
证书更新:认证中心可以定期更新所有用户的证书,或者根据用户的请求来更新用户的证书
证书查询:查询当前用户证书申请处理过程;查询用户证书的颁发信息,这类查询由目录服务器LDAP来完成
证书作废:由于用户私钥泄密等原因,需要向认证中心提出证书作废的请求;证书已经过了有效期,认证中心自动将该证书作废。认证中心通过维护证书作废列表 (Certificate Revocation List,CRL) 来完成上述功能。
证书的归档:证书具有一定的有效期,证书过了有效期之后就将作废,但是我们不能将作废的证书简单地丢弃,因为有时我们可能需要验证以前的某个交易过程中产生的数字签名,这时我们就需要查询作废的证书。
来源:

四、Certificates 数字证书

主要构成

  1. 申请者信息;
  2. 申请者公钥;
  3. 签发机构CA及数字签名
  4. 证书有效期

证书标准

  1. x.509 是PKI 体系中最基础的标准,它最先定义了公钥证书的基本结构:
    SSL公钥证书
    证书废除列表CRL(Certificate revocation lists)

  2. PKCS#12
    windows 平台及 mac平台使用的证书标准,通常使用 pfx/p12 作为文件扩展名,
    该标准在X509的基础之上增加了私钥及存取密码。

编码格式

PEM - Privacy Enhanced Mail, BASE64编码,可读
Apache和Unix/Linux 服务器采用的编码格式.
DER - Distinguished Encoding Rules,二进制格式,不可读.
Windows 服务器采用的编码格式.

文件扩展名

pem/der 数字证书,编码格式与其名称对应;
crt 数字证书,常见于unix/linux系统;
cer 数字证书,常见于windows系统;
key 非证书,一般是公钥或私钥文件;
csr certificate signing request,证书签名请求文件;
pfx/p12 - predecessor of PKCS#12,是PKCS#12 标准的证书文件,
同时包含了公钥和私钥,存取时需提供密码,采用DER 编码

五、样例

获取github 证书

使用chrome 打开 https://github.com/ ,点击链接左边的 区域可看到信息面板:

找到证书信息,导出详细信息

证书内容


SSL安全证书-概念解析的更多相关文章

  1. OpenSSL 与 SSL 数字证书概念贴

    SSL/TLS 介绍见文章 SSL/TLS原理详解(http://seanlook.com/2015/01/07/tls-ssl). 如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自 ...

  2. [转]浅谈https\ssl\数字证书

    浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...

  3. ssl通关的概念(一个)

    在公司最近的项目涉及多种加密.安全.我一直在这方面缺乏经验.很协议仅仅知道是什么概念.用于传输的加密SSL,也煞费苦心.非常easy一件事,折腾了很长一段时间.IT该行啊,真的是.难者不会,与会者困难 ...

  4. docker项目ssl 安全证书的种种

    一,证书挂着宿主的nginx上 这个很简单,只需要修改宿主nginx的配置文件即可 server { ssl default; server_name www.abc.com; #项目域名 ssl_c ...

  5. 浅谈https\ssl\数字证书

    全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕 ...

  6. 【转】浅谈https\ssl\数字证书

    转载请注明出处:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数字证书申请 ...

  7. Hexo瞎折腾系列(7) - Coding Pages申请SSL/TLS证书错误

    问题 今天我的个人站点SSL/TLS证书到期,我的证书是由Coding Pages提供的,每次申请成功后有效期是三个月,证书到期后可以继续免费申请.但是当我登陆进入Coding Pages服务的后台并 ...

  8. RabbitMQ安装、集群搭建、概念解析

    RabbitMQ安装.集群搭建.概念解析 基本概念 为什么会产生MQ 1.解耦:采用异步方式实现业务需求达到解耦的目的. 2.缓冲流量,削峰填谷: 问:为什么会有流量冲击? 答:采用"直接调 ...

  9. 网站如何启用SSL安全证书?IIS7启用新建Https:/

    网站使用SSL,通过SSL证书申请,然后导入之后.我们需要对网站进行设置才能正常使用SSL证书,具体如何操作让网站启用SSL呢,本经验以一个网站添加SSL主机头的方式为例来,网站启用SSL服务器安全证 ...

随机推荐

  1. ko 简单例子

    Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...

  2. jquery自定义插件——以 选项卡插件为例

    一直打算尝试自定义插件,终于付诸实践了,现在把内容发表出来,与大家共勉. 我是根据自己正在用的插件,模仿其源码,实现的自定义插件,完成之后,在网上看相关资料,对自定义插件部分,有了更明确的认识. jq ...

  3. Java并发编程学习笔记(二)——对象的共享

    主要概念:可见性.重排序.失效数据.最低安全性.发布.逸出.线程封闭(Ad-hoc.栈封闭.ThreadLocal类).不变性.Final域.事实不可变对象. 1.在没有同步的情况下,编译器.处理器以 ...

  4. Reverse Linked List II 单向链表逆序(部分逆序)

    0 问题描述 原题点击这里. 将单向链表第m个位置到第n个位置倒序连接.例如, 原链表:1->2->3->4->5, m=2, n =4 新链表:1->4->3-& ...

  5. CentOS7 下 安装 supervisor以及使用

    CentOS7 下 安装 supervisor 以及使用 手动安装 [注] linux环境必须安装 python 1.获取supervisor包:[https://pypi.python.org/py ...

  6. Shell 编写准则

    Shell 中备注符号: # 或者 " 作为Shell中的备注符号. 需要注意的是,首行的#!/bin/bash 不是注释 Shell 格式 首行输入  #!/bin/bash 中间输入运行 ...

  7. 炫酷的Linux终端命令大全-1

    1. 命令行日常快捷键. CTRL + U            ------------------------------- 剪切光标前的内容 CTRL + K             ----- ...

  8. Android自定义权限和使用权限

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 自定义权限,主要用于保护被赋予权限的组件.如无权限与有权限,正如public与private的对类保 ...

  9. XML代码生成器——XMLFACTORY 简介(一)

    XML代码生成器——XMLFACTORY 简介(一) 软件开发中经常要和第三方应用交互数据,特别是在银行.电信行业,这种需求更是必不可少,往往一个系统要和三五个其它系统交互数据,而数据交换的报文经常采 ...

  10. 【转】jenkins持续集成配置

    搭建jenkins持续集成服务器 1.jenkins简介 Jenkins,前身为Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括: 持续的软件版本发布/测试项目. 监控 ...