tls证书(一文读懂TSL/SSL证书体系与及https的工作原理

https是使用ssl验证请求正当性的http服务。 也就是说,一个https的业务必须配置一个证书,首先介绍https的工作过程,然后详细阐述SSL或TSL的工作原理

https工作步骤1,客户端的https请求

2 .服务端收到请求后,向客户端(一般为浏览器)发送自己服务端设置的证书(以下详细说明证书颁发流程,例如*.crt文件)。 该数字证书不仅包含用于非对称加密的公钥,还包含公钥算法、证书的颁发机构、有效期限等信息

3、客户端收到数字证书后,解析验证服务器的合法性。 主要是证书未过期、颁发服务器证书的CA可信、颁发证书的公钥(如果放入浏览器的根证书文件中,则基本上所有浏览器都内置)正确解开服务器证书的“发行者的数字签名” 如果验证成功,客户端将随机生成用于后续通信的“对称密码”,用服务器公钥(从步骤3的服务器证书中获取服务器公钥)加密,并将加密的“预主密码”发送到服务器。 当然,如果验证失败,将通过弹出窗口通知用户。

4、服务端使用自己的私钥*.key文件解密该随机数,使用该随机数(密钥)对应该返回给客户端的内容进行对称加密。 将加密的内容返回给客户端。 客户端使用以前生成的随机值(对称加密私钥)解密内容以获取真正的内容

安全套接字层(ssl/tsl证书体系安全套接字层)。 Netscape公司于1990年开发,用于保障wordwideweb(www )通信的安全。 主要任务是私密性,信息完整性和身份认证1994年改版为SSLv3,1994年改版为SSL v3。

传输层安全传输层协议(TLS ) ()用于在两个通信APP应用程序之间提供机密性和数据完整性。 该标准协议由IETF于1999年颁布,总体上TLS与SSLv3非常相似,只是对SSLv3进行了一些添加和修改。

一些概念1、X.509

这是证书的标准,主要定义证书中应包含的内容。 详细内容请参照RFC5280。 SSL使用了该证书标准。

*2、证书签名请求(Certificate signing request )- .csr

csr的核心内容是公钥,当然还附有一些其他信息,并使用私钥签名

*3、证书(Certificate )- .cer .crt

证书是公钥。 当然,还包括公钥算法、证书颁发机构和过期日期等附加信息。

*4、私钥(私有密钥)- .key

用于对从所述https动作中客户机发送的、用证明书中的公开密钥加密的数据进行解密

5、CA机构

ca体系结构的作用:客户端第一次向https发送请求,https服务向客户端发送他的证书,客户端提取证书的公钥,客户端为什么相信该证书,如上所述由于服务端发送的证书由CA机构用自己的私钥签名,所以CA机构有限,一般浏览器内置所有CA机构的根证书,因此浏览器提取根证书的公钥,对服务端发送的证书进行签名验证,

证书颁发过程1,生成私钥. key文件

2 .用私钥生成证书签名请求文件csr,csr的核心内容是公钥,当然附有一些别的信息。 用私钥签名了

3、将证书签名请求发送给CA机构签名,生成最终证书crt

通过在提供http服务的主机上配置crt和key文件,可以向外部提供https服务。 动作步骤如上所述,https动作步骤

证书类型在颁发的证书中有多种名称,例如. pem、 crt、 der、 pfx和. cer。 这些都是证书,只是代码方式不同

带有私钥的证书(P12)

在publickeycryptographystandards # 12,PKCS#12标准中定义,以二进制格式(包括公钥和私钥)使用pfx作为证书文件的扩展名。

二进制编码的证书(DER)

证书中没有私钥。 DER对二进制格式的证书文件进行编码,并使用. cer作为证书文件的扩展名。

查看DER格式证书的信息: $ OpenSSL x509-in certificate.der-inform der-text-noout 3358 www.Sina.com /

证书上没有私钥。 Base64编码格式的证书文件也使用. cer和私有hancedmail (PEM )作为证书文件的扩展名。 OpenSSL使用PEM格式存储各种信息。 这是OpenSSL默认采用的信息存储方式,包括证书颁发机构(ca )——–begincertificate—-和—————。

–END CERTIFICATE—– 声明。多个 PEM 证书甚至于 Private Key 可以被包含到一个文件中,一个挨一个往下排布。但是大多数平台(如:Apache),希望证书和私钥分别存放到不同的文件中

查看 PEM 格式证书的信息:openssl x509 -in certificate.pem -text -noout 自签证书

1、生成私钥

openssl genrsa -des3 -out domain.key 1024

2、 去掉密码

openssl rsa -in domain.key -out domain_nopass.key

3、用上面的私钥生成证书签名请求csr文件

openssl req -new -key domain.key -out domain.csr

这里会提示输入国家,地区组织,email等信息.最重要的一个是”common name”,需要与网站域名相同.

Enter pass phrase for domain.key: # 之前设置的密码—–Country Name (2 letter code) [XX]:CN # 国家State or Province Name (full name) []:Jilin # 地区或省份Locality Name (eg, city) [Default City]:Changchun # 地区局部名Organization Name (eg, company) [Default Company Ltd]:Python # 机构名称Organizational Unit Name (eg, section) []:Python # 组织单位名称Common Name (eg, your name or your server’s hostname) []:domain.com # 网站域名Email Address []:123@domain.com # 邮箱A challenge password []: # 私钥保护密码,可直接回车An optional company name []: # 一个可选公司名称,可直接回车

4、再使用上面的密钥和CSR对证书签名

openssl x509 -req -days 365 -in domain.csr -signkey domain.key -out domain.crt

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注