说明
- armbian中使用OpenResty进行反向代理,配置ssl证书,但是由于和官网申请的证书内容格式内容不太一样,所以本文就此问题进行ssl证书格式转化的方进行记录,希望能够帮助到其他人!
- 例如:在华为云申请的ssl证书中nginx部分的证书分为key和crt格式的私钥,但是OpenResty要求的私钥是PEM格式
ssl证书格式CRT&PEM
- CRT(Certificate)格式和PEM(Privacy Enhanced Mail)格式本质上是相同的,只是文件扩展名不同。
- CRT文件通常包含证书,而PEM文件是一种通用的编码格式,可以包含证书、私钥等。
转换方法
linux系统
- 可以将其内容复制到一个新的文本文件,并将该文件保存为以.pem为扩展名的文件。这样,你就将CRT格式转换为PEM格式
- 在Linux或类Unix系统上,还可以使用以下命令将CRT转换为PEM:
openssl x509 -in your_certificate.crt -out your_certificate.pem -outform PEM
win系统
- 安装 OpenSSL for Windows:
- 打开命令提示符:在 Windows 上按下 Win + R,输入 cmd 并按回车键打开命令提示符窗口
- 转换证书格式
openssl x509 -inform der -in your_certificate.crt -out your_certificate.pem -outform PEM
- 查看证书信息:
certutil -dump your_certificate.crt
- 转换证书格式:
certutil -encode your_certificate.crt your_certificate.pem
- 导入证书:
certutil -addstore My your_certificate.crt
- 导出证书:
certutil -exportpfx -p password -f -privatekey your_certificate_thumbprint.pfx
- 删除证书:
certutil -delstore My your_certificate_thumbprint
问题: ASN.1 编码错误
root@armbian:/home# openssl x509 -inform der -in server.crt -out server.pem -outform PEM
unable to load certificate
548506843632:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1149:
548506843632:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:309:Type=X509
- 是由于证书文件不符合预期的 DER 编码格式导致的
- 证书文件是 DER 编码格式:
openssl x509 -inform der
命令用于解析 DER 编码的证书。确保server.crt
文件确实是 DER 编码格式的证书。如果证书是PEM
编码的,应该使用-inform PEM
而不是-inform der
。
openssl x509 -inform PEM -in server.crt -out server.pem -outform PEM
补充:DER和pem编码格式
- DER 编码格式:
- 示例:
MIIB0TCCAXmgAwIBAgIJAOD1COWyEJVOMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV BAMMCG15X2NlcnQwHhcNMjAwNTA0MTk1NjI1WhcNMjEwNTA0MTk1NjI1WjAXMRUw
- PEM 编码格式:
-
示例:
-----BEGIN CERTIFICATE----- MIIB0TCCAXmgAwIBAgIJAOD1COWyEJVOMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV BAMMCG15X2NlcnQwHhcNMjAwNTA0MTk1NjI1WhcNMjEwNTA0MTk1NjI1WjAXMRUw ... -----END CERTIFICATE-----
-
总体而言,DER 和 PEM 都用于表示相同的 X.509 数字证书,只是它们在数据的表示和传输上有所不同。PEM 格式在实际应用中更为常见,因为它兼具二进制数据的安全性和 ASCII 可读性。
原文地址:https://blog.csdn.net/yang2330648064/article/details/134796571
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_42174.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。