乐趣区

关于linux:linux下生成https证书nginx配置openssl-CRT-PEM-KEY-CSR-X509认识

SSL

SSL – Secure Sockets Layer, 当初应该叫 ”TLS”, 但因为习惯问题, 咱们还是叫 ”SSL” 比拟多.http 协定默认状况下是不加密内容的, 这样就很可能在内容流传的时候被他人监听到, 对于安全性要求较高的场合, 必须要加密,https 就是带加密的 http 协定, 而 https 的加密是基于 SSL 的, 它执行的是一个比拟上层的加密, 也就是说, 在加密前, 你的服务器程序在干嘛, 加密后也一样在干嘛, 不必动, 这个加密对用户和开发者来说都是通明的.

OpenSSL – 简略地说,OpenSSL 是 SSL 的一个实现,SSL 只是一种标准. 实践上来说,SSL 这种标准是平安的, 目前的技术水平很难破解, 但 SSL 的实现就可能有些破绽, 如驰名的 ” 心脏出血 ”.OpenSSL 还提供了一大堆弱小的工具软件, 弱小到 90% 咱们都用不到.

证书规范

X.509 – 这是一种证书规范, 次要定义了证书中应该蕴含哪些内容. 其详情能够参考 RFC5280,SSL 应用的就是这种证书规范.

编码格局

同样的 X.509 证书, 可能有不同的编码格局, 目前有以下两种编码格局.

PEM – Privacy Enhanced Mail, 关上看文本格式, 以 ”—–BEGIN…” 结尾, “—–END…” 结尾, 内容是 BASE64 编码.

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

Apache 和 *NIX 服务器偏差于应用这种编码格局.

DER – Distinguished Encoding Rules, 关上看是二进制格局, 不可读.

查看 DER 格局证书的信息:openssl x509 -in certificate.der -inform der -text -noout

Java 和 Windows 服务器偏差于应用这种编码格局.

相干的文件扩展名

这是比拟误导人的中央, 尽管咱们曾经晓得有 PEM 和 DER 这两种编码格局, 但文件扩展名并不一定就叫 ”PEM” 或者 ”DER”, 常见的扩展名除了 PEM 和 DER 还有以下这些, 它们除了编码格局可能不同之外, 内容也有差异, 但大多数都能互相转换编码格局.

CRT – CRT 应该是 certificate 的三个字母, 其实还是证书的意思, 常见于 *NIX 零碎, 有可能是 PEM 编码, 也有可能是 DER 编码, 大多数应该是 PEM 编码, 置信你曾经晓得怎么分别.

CER – 还是 certificate, 还是证书, 常见于 Windows 零碎, 同样的, 可能是 PEM 编码, 也可能是 DER 编码, 大多数应该是 DER 编码.

KEY – 通常用来寄存一个公钥或者私钥, 并非 X.509 证书, 编码同样的, 可能是 PEM, 也可能是 DER.

查看 KEY 的方法:openssl rsa -in mykey.key -text -noout

如果是 DER 格局的话, 同理应该这样了:openssl rsa -in mykey.key -text -noout -inform der

CSR – Certificate Signing Request, 即证书签名申请, 这个并不是证书, 而是向权威证书颁发机构取得签名证书的申请, 其核心内容是一个公钥(当然还附带了一些别的信息), 在生成这个申请的时候, 同时也会生成一个私钥, 私钥要本人保存好. 做过 iOS APP 的敌人都应该晓得是怎么向苹果申请开发者证书的吧.

查看的方法:openssl req -noout -text -in my.csr (如果是 DER 格局的话依旧加上 -inform der, 这里不写了)

证书编码的转换

PEM 转为 DER openssl x509 -in cert.crt -outform der -out cert.der

DER 转为 PEM openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

(提醒: 下面例子是转换证书文件,如果要转换 KEY 文件也相似, 只不过把 x509 换成 rsa, 要转 CSR 的话, 把 x509 换成 req)

未完待续
更多内容请拜访上面的源链接

  • 本文作者: 开发者首页
  • 本文链接: https://blog.kfzsy.com/linux-https-nginx.html
  • 版权申明: 本博客所有文章除特地申明外,均采纳 BY-NC-SA 许可协定。转载请注明出处!
退出移动版