导航
导航
文章目录
  1. 一、OpenSSL
  2. 二、CA
  3. 三、创建 Root CA
  4. 四、创建证书签名请求 CSR
  5. 五、签发证书
  6. 六、参考文献

OpenSSL Certificate Authority

一、OpenSSL

OpenSSL is a free and open-source cryptographic library that provides several command-line tools for handling digital certificates.

OpenSSL 是一种加密工具,包含开源的 SSL/TLS 协议实现,command-line tools, 以及各种各样的加密函数库,这些加密库函数可以被开发者调用,开发各种基于 UI 的加密工具。

二、CA

CA (certificate authority) is an entity that signs digital certificates. Many websites need to let their customers know that the connection is secure, so they pay an internationally trusted CA (eg, VeriSign, DigiCert) to sign a certificate for their domain.

CA 可以看作是一种信任授权机构。在加密通信环境中或匿名通信环境中,访问者与被访问者之间,最初是相互不信任的,他们需要一个可信的中间人,作为媒介,以达到相互信任的目的。

一般而言,有 2 种类型的 CA, 即 Root CA (根 CA)和 Intermediate CA (中间 CA). 通常情况下,为了最大程度地保护 Root CA 的安全性,Root CA 不直接签发用户证书(且处于离网状态),而由授权的中间 CA 来签发用户证书,从而避免被恶意攻击篡改。

1. Root CA 扮演的角色

Root CA 属于自签名的证书,内置于浏览器里,随浏览器分发下去。它不需要第三方认可的,只要浏览器开发者把它捆绑到浏览器里,它就被直接认可。

Selection_003

2. Intermediate CA

中间 CA 直接参与用户证书签发。用户通过生成 CSR (证书签名请求)递交 签名请求,然后由中间 CA 签发。

3. 证书链及其验证过程

由于 Root CA 不直接参与签发,所以整个证书就会出现分级授权,这种分级,最终形成一个可靠的证书信任链。每一级证书包含公钥、证书发行者名称,以及证书的签名(这些内容都是明文的)。

Chain_of_trust.svg

客户端浏览器验证整个证书链的过程,大致可以描述为:

  • 客户端浏览器通过 SSL 握手协议,从服务器上拿到整个证书链。
  • 浏览器内置的 Root CA 利用其公钥,解密其用私钥所签发的中间CA,然后比对信息是否一致 ,从而验证中间 CA 的合法性。
  • 若中间 CA 合法,则中间 CA 利用其公钥,解密其用私钥所签发的用户证书,然后比对信息是否一致,以验证用户证书的合法性。否则,直接中断验证过程,并告知浏览者,签名无效。
三、创建 Root CA

 

四、创建证书签名请求 CSR

 

五、签发证书
六、参考文献

https://jamielinux.com/docs/openssl-certificate-authority/introduction.html

支持一下
坚持原创技术分享,您的支持将鼓励我继续创作!