服务器其它

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 服务器其它 > 如何将pem证书转换为.crt和.key与证书格式介绍

如何将pem证书转换为.crt和.key与证书格式介绍

投稿:WDC

这篇文章主要介绍了如何将pem证书转换为.crt和.key与证书格式介绍,需要的朋友可以参考下

证书格式介绍

PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。 常用的有:

关于证书后缀格式来自: https://www.chinassl.net/ssltools/convert-ssl-commands.html

.pem转换的问题描述

.pem文件中提取/转换证书.crt和私钥.key文件的正确方法或者命令是什么?我知道它们是可转换的,但是不清楚怎么做。

最佳解决方法

可以使用以下方式将pem转换为crt:

openssl x509 -outform der -in your-cert.pem -out your-cert.crt

可行的解决方法整理

使用OpenSSL进行转换

以下命令允许将证书和密钥转换为不同的格式,使其与特定类型的服务器或软件兼容。

openssl x509 -inform der -in certificate.cer -out certificate.pem
openssl x509 -outform der -in certificate.pem -out certificate.der
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

You can add -nocerts to only output the private key or add -nokeys to only output the certificates.

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
openssl x509 -outform der -in certificate.pem -out certificate.crt

OpenSSL转换PEM

openssl x509 -outform der -in certificate.pem -out certificate.der
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

OpenSSL转换DER

openssl x509 -inform der -in certificate.cer -out certificate.pem

OpenSSL转换P7B

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

OpenSSL转换PFX

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

通过OpenSSL生成rsa密钥

openssl rsa -in private.pem -out public.pem -outform PEM -pubout

or

openssl rsa -in private.pem -pubout > public.pem

or

openssl rsa -in private.pem -pubout -out public.pem

现在你的public.pem只包含公钥,可以和第三方自由地分享。可以通过使用公钥加密自己的东西然后使用私钥进行解密来测试,首先我们需要一些数据做加密:

echo 'too many secrets' > file.txt

现在在file.txt中有一些数据,可以使用OpenSSL和公钥进行加密:

openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
cat decrypted.txt
|output -> too many secrets

OpenSSL中的RSA工具选项

笔记

-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----

-----END PUBLIC KEY-----
-----BEGIN RSA PUBLIC KEY-----

-----END RSA PUBLIC KEY-----

NET格式是与旧的Netscape服务器和Microsoft IIS .key文件兼容的格式,它使用未加密的RC4进行加密。这种方法不是很安全,所以只能在必要时使用。一些较新版本的IIS在导出的.key文件中有其他额外的数据。要使用这些实用程序,请使用二进制编辑器查看文件,并查找字符串"private-key",然后追溯到字节序列0x300x82(这是一个ASN1 SEQUENCE)。将所有数据从此点复制到另一个文件,并将其用作带有-inform NET选项的rsa实用程序的输入。

例子

 openssl rsa -in key.pem -out keyout.pem
openssl rsa -in key.pem -des3 -out keyout.pem
  openssl rsa -in key.pem -outform DER -out keyout.der
openssl rsa -in key.pem -text -noout
  openssl rsa -in key.pem -pubout -out pubkey.pem
  openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem

到此这篇关于如何将pem证书转换为.crt和.key与证书格式介绍的文章就介绍到这了,更多相关如何将pem证书转换为.crt和.key与证书格式介绍内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文