如何使用 openssl 将 .csr 转换为 .crt?

Vij*_*ert 4 certificate ssl-certificate x509certificate

好吧,我已经尝试了以下

openssl x509 -req -in <cert_name>.csr -signkey <key_name>.key -out output.crt    
Run Code Online (Sandbox Code Playgroud)

但似乎抛出错误

140735226307408:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: CERTIFICATE REQUEST    
Run Code Online (Sandbox Code Playgroud)

任何解决方案?

小智 7

问题的根源在于您的 CSR 的形式:使用 X509 时,您的数据可以使用 2 种形式存储:DER 和 PEM。

默认情况下,openssl 假定您使用的是 PEM。

在您的情况下,您应该首先将 CSR 转换为 PEM 格式: openssl req -inform DER -in .csr -out .pem 然后 openssl x509 -req -in .pem -signkey .key -out output.crt

  • 对于那些因错误标签 libressl 而收到错误的人,只需删除 -inform DER 选项 (3认同)
  • 请您输入完整的命令语法。谢谢 (2认同)