Https 证书

https使用证书加密,涉及到几个名词:SSL、X.509、PEM、DER、CRT、CER、KEY、CSR等。

SSL

http协议默认情况下不加密传输内容,导致如果数据包被拦截,数据就会泄露,对于某些安全性要求较高的场合,就一定要加密,https就是一种基于SSL带加密的http协议。

OpenSSL

OpenSSL是SSL的一个实现方式,SSL是一种规范。

证书标准

X.509

证书标准的一种,定义了证书需要包含哪些内容。

编码格式(PEM、DER)

PEM Privacy Enhanced Mail,以-----BEGIN CERTIFICATE-----开头,-----END CERTIFICATE-----结尾,内容BASE64编码。

DER Distinguished Encoding Rules,二进制不可读。

相关文件

CRT certificate,linux系统,证书,可能是pem或者der格式。

CER certificate windows系统,证书。

KEY 通常用来存放一个公钥或私钥,并非X.509证书。

PEM KEY: openssl rsa -in key.key -text -noout
DER KEY: openssl rsa -in key.key -text -noout -inform der

CSR Certificate Signing Request,证书签名请求。

openssl req -noout -text -in csr.csr
openssl req -noout -text -in csr.csr -inform der

证书编码转换

PEM 2 DER:openssl x509 -in cert.crt -outform der -out cert.der
DER 2 PEM:openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

获取证书

使用命令生成csr

openssl req -newkey rsa:2048 -new -nodes keyout my.key -out my.csr

自己签名的证书

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

过程中实际有用的只有Common name,填写服务器域名或者ip。

原文地址:https://www.cnblogs.com/avalon-merlin/p/10495259.html