如何熟悉SSL证书的基础知识?

Linux基础

1 基础知识

1.1 SSL证书

1.1.1 什么是SSL证书

– SSL即英文“Secure Sockets Layer”的缩写,中文翻译为安全套接字层
– SSL证书是带有加密数据的文本文件

如上图所示,
– SSL证书安装与服务器上,用于保护和加密站点与客户端(包括浏览器)之间的敏感会话通讯

1.1.2 公钥与私钥的概念

– 公钥认证,即是公钥与私钥认证的简称,类似于锁和钥匙的关系,他们相互校验。
– 公钥是公开的,透明且可见的(相当于锁),公钥用于加密服务(锁住服务器)
– 私钥是私有的(相当于钥匙),用于解密服务(开服务器的锁)
– 公钥认证,实际上是使用一对加密字符串
– 一个称为公钥(public key),任何人都可以看到其内容,用于加密
– 另一个称为密钥(private key),只有拥有者才能看到,用于解密
– 通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难(非对称性)

1.1.3 SSL的工作原理


如上图所示,
– 服务器将自己的非对称公钥的副本发送到浏览器,服务器自己保留非对称私钥
– 浏览器创建对称会话密钥,并使用服务器的非对称公钥对其进行加密,然后将其发送到服务器
– 服务器使用之前保留的非对称私钥解密经过服务器加密的对称会话密钥
– 以上过程之后,服务器与浏览器将使用对称会话密钥对所有传输的数据进行加密和解密
– 对称会话密钥会有一定时效性,如果间隔一段时间不使用则需要重新创建
注:
– 以上被称为SSL握手过程(对用户不可见)
– 此过程会在Web服务器与浏览器之间建立安全连接

1.1.4 SSL证书包含的内容

– SSL证书包含一个密钥对(即公钥和私钥),私钥对一起建立加密链接
– SSL证书包含所谓的“subject”,中文翻译为主题,即证书或网站的所有者身份

1.2 证书的分类

1.2.1 什么是CSR

– CSR即英文“certifcate signing request”的缩写,中文翻译为证书签名请求
– CSR文件用户向证书颁发者(即颁发机构或CA)发起证书申请

1.2.2 中间证书

– 中间证书即英文“Intermediate Certificate”的翻译

如上图所示,
– 中间证书通过将证书供应商颁发的证书与供应商的根证书联系起来,建立SSL证书信任(即完成证书链)

1.3 证书的申请过程

– 服务器上创建证书签名请求(CSR),同时创建服务器的公钥和私钥
– 发送给证书颁发者(即颁发机构或CA)的CSR数据文件包含服务器的公钥
– CA使用CSR文件创建一个数据结构(SSL证书)以匹配服务器的私钥(CA无法知道私钥的内容)
– SSL证书与中间证书被安装于服务器上,SSL证书通过中间证书与CA的根证书建立信任关系

1.4 信任关系的建立

– 浏览器仅信任来自于受信任CA列表中的组织的证书
– 浏览器默认预安装受信任CA列表(即受信任根CA存储)
– CA通过颁发给受信任的第三方组织及域或网站证书并通过CA的证书链使浏览器信任被颁发证书的机构
注:CA机构必须遵守浏览器建立的安全性和身份验证标准并接受其审核

1.5 通配证书

1.5.1 通配证书的概念

– 通配证书即包含通配符的证书
– 通配证书可部署于任意数量的服务器上
– 通配证书的每个服务器都分配有自己的私钥

1.5.2 通配证书的范例

*.example.com

以上证书可代表以下服务器,

www.example.com
mail.example.com
blog.example.com

2 相关的证书向导

Nginx证书的创建与安装,
https://www.digicert.com/csr-ssl-installation/nginx-openssl.htm#ssl_certificate_install

参阅文档
============================
证书以及中间证书的介绍
————
https://www.digicert.com/ssl-certificate-installation.htm

公钥与私钥的概念
————-
https://www.cmdschool.org/archives/1001

证书的工作原理
————-
https://www.digicert.com/ssl-certificate/

证书的申请和信任关系
————–
https://www.digicert.com/ssl/

通配证书
———–
https://www.digicert.com/wildcard-ssl-certificates/

没有评论

发表评论

Linux基础
如何测试网络带宽?

1 前言 一个问题,一篇文章,一出故事。 笔者需要通过命令行测试出口的带宽,于是产生此文。 2 最佳 …

Linux基础
如何测试存储设备的读写IO速度?

1 前言 一个问题,一篇文章,一出故事。 笔者需要测试存储设备的读写IO速度,于是整理此文。 2 最 …

Linux基础
如何根据用户或组配置磁盘限额?

1 基础知识 1.1 Disk Quota的概念 Disk Quota用于合理分配有限的磁盘使用空间 …