SSL证书生成

概念

  • SSL也就是Secure Socket Layer,叫做安全套接字协议,是一种应用层协议,主要用于传输数据的加密。SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道,SSL安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。

  • x509证书一般会用到三类文件:key、csr、crt

    key是私钥,openssl格式,通常使用rsa算法

    csr是证书请求文件 ,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请。

    crt是CA认证后的证书文件,签署人用自己的key给申请人签署的凭证。

  • 先要有CA根证书,之后用CA根证书来签发用户证书。用户申请证书时,先生成一个私钥,之后用私钥生成证书请求,证书中含有公钥信息,再利用证书服务器的CA根证书来签发证书。根证书是CA认证中心给自己颁发的证书,任何安装CA根证书的服务器都意味着对这个CA认证中心是信任的。数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名后形成的一个数字文件。数字证书包含证书中所标识的实体的公钥,由于证书将公钥与特定的个人匹配,并且该证书的真实性由颁发机构保证,因此,数字证书为如何找到用户的公钥并知道它是否有效这一问题提供了解决方案。

  • openssl中文件的后缀名

    .key格式:私有的密钥

    .csr格式:证书签名请求,含有公钥信息,csr是certificate signing request的缩写

    .crt格式:证书文件,crt是certificate的缩写

    .crl格式:证书文件,crl是certificate的缩写

    .pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

  • 证书生成步骤:

    这里有三个角色,CA根服务器、RA派出服务器、客户端

    根证书:生成CA私钥(.key)–>生成CA证书请求(.csr)–>自签名得到根证书(.crt)(CA给自已颁发的证书)。(这里的CA服务器)

    派出服务器证书:派出服务器的证书也是自己先生成私钥和请求,再由CA根服务器使用根证书签署后,派出服务器才能使用

    客户端证书:客户端证书由客户端生成私钥与请求后,由派出服务器签署生效

    个人理解,这里的CA服务器就是操作系统中集成的根证书机构,RA就是可以从出售证书的机构,如阿里等,客户端指需要使用SSL功能的机构,如网站等。用户在电脑上浏览某个https网站时,会下载网站的证书,证书的有效性靠操作系统中集成的根证书来识别。

  • 通信过程:A要与B进行通信,A将自己的公钥发给了B,那B就需要知道A发过来的公钥是否为正规的CA颁发的,A在获得CA给其颁发的证书时CA会在证书上面盖一个戳,因此我们需要通过验证戳的真实性来验证A的公钥的合法性,所以上面的问题关键点就在于验证CA所盖的戳的真实性。通过验证CA自身的证书就可以验证CA盖的戳的真实性。CA证书是从操作系统上获得的,也就是系统发行厂商会把这些CA证书做进操作系统里。在需要的时候可以直接比对,如果操作系统中没有固化的这些CA证书,那么这个证书就不合法。

作者

John Doe

发布于

2018-12-05

更新于

2023-03-17

许可协议