专做衬衣的网站,seo研究中心倒闭,正邦网站建设 优帮云,宁阳网站开发文章目录 说明ssl证书格式CRTPEM转换方法linux系统win系统 问题#xff1a; ASN.1 编码错误补充#xff1a;DER和pem编码格式 说明
armbian中使用OpenResty进行反向代理#xff0c;配置ssl证书#xff0c;但是由于和官网申请的证书内容格式内容不太一样#xff0c;所… 文章目录 说明ssl证书格式CRTPEM转换方法linux系统win系统 问题 ASN.1 编码错误补充DER和pem编码格式 说明
armbian中使用OpenResty进行反向代理配置ssl证书但是由于和官网申请的证书内容格式内容不太一样所以本文就此问题进行ssl证书格式转化的方进行记录希望能够帮助到其他人例如在华为云申请的ssl证书中nginx部分的证书分为key和crt格式的私钥但是OpenResty要求的私钥是PEM格式
ssl证书格式CRTPEM
CRTCertificate格式和PEMPrivacy Enhanced Mail格式本质上是相同的只是文件扩展名不同。CRT文件通常包含证书而PEM文件是一种通用的编码格式可以包含证书、私钥等。
转换方法
linux系统
可以将其内容复制到一个新的文本文件并将该文件保存为以.pem为扩展名的文件。这样你就将CRT格式转换为PEM格式在Linux或类Unix系统上还可以使用以下命令将CRT转换为PEMopenssl x509 -in your_certificate.crt -out your_certificate.pem -outform PEM执行命令会修改私钥的内容? 执行上述命令不会修改原始的证书文件(your_certificate.crt)。该命令的目的是将输入的CRT格式的证书文件(your_certificate.crt)转换为PEM格式并将转换后的内容输出到一个新的PEM文件(your_certificate.pem)中。原始的CRT文件(your_certificate.crt)将保持不变而PEM文件(your_certificate.pem)将包含与CRT文件相同的证书信息只是以PEM格式进行编码。
win系统
安装 OpenSSL for Windows 从 OpenSSL 的官方网站下载 Windows 版本的 OpenSSL。将 OpenSSL 添加到系统的 PATH 环境变量中. 打开命令提示符在 Windows 上按下 Win R输入 cmd 并按回车键打开命令提示符窗口转换证书格式openssl x509 -inform der -in your_certificate.crt -out your_certificate.pem -outform PEM在 Windows 上certutil 是一个用于处理证书和证书服务的命令行实用程序。
查看证书信息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 编码错误
rootarmbian:/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:TypeX509是由于证书文件不符合预期的 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编码格式
DERDistinguished Encoding Rules和 PEMPrivacy-Enhanced Mail都是用于表示 X.509 数字证书的不同编码格式。
DER 编码格式 Binary Format: DER 是一种二进制编码格式以二进制形式表示数据。它通常用于在计算机系统之间以二进制形式传输和存储数据。ASN.1 结构: DER 使用 ASN.1Abstract Syntax Notation One[一种用于描述数据结构的标准化表示法]来定义数据结构。无格式化: DER 编码的证书是无格式化的没有包含任何可读性更强的字符。文件扩展名: DER 编码的证书通常使用 .der 或 .cer 作为文件扩展名。
示例MIIB0TCCAXmgAwIBAgIJAOD1COWyEJVOMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV
BAMMCG15X2NlcnQwHhcNMjAwNTA0MTk1NjI1WhcNMjEwNTA0MTk1NjI1WjAXMRUwPEM 编码格式 Base64 格式: PEM 使用 Base64 编码将二进制数据转换为可打印的 ASCII 字符串。这使得 PEM 格式在文本环境中更易于处理和传输。包含边界标识: PEM 编码的证书包含了边界标识如 “-----BEGIN CERTIFICATE-----” 和 “-----END CERTIFICATE-----”用于标识 PEM 数据的起始和结束。可读性更强: 由于使用了 Base64 编码PEM 编码的证书相对于 DER 编码来说更具可读性。文件扩展名: PEM 编码的证书通常使用 .pem、.crt、.cer 或 .key 作为文件扩展名。 示例 -----BEGIN CERTIFICATE-----
MIIB0TCCAXmgAwIBAgIJAOD1COWyEJVOMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV
BAMMCG15X2NlcnQwHhcNMjAwNTA0MTk1NjI1WhcNMjEwNTA0MTk1NjI1WjAXMRUw
...
-----END CERTIFICATE-----总体而言DER 和 PEM 都用于表示相同的 X.509 数字证书只是它们在数据的表示和传输上有所不同。PEM 格式在实际应用中更为常见因为它兼具二进制数据的安全性和 ASCII 可读性。