从.pem文件获取.cer文件


13

我已经使用以下命令生成了RSA私钥:

openssl genrsa -out privkey.pem 2048

并使用以下命令创建了自签名证书:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 3650

现在,我正在尝试将cacert .pem文件转换为ce​​rtificate .cer

有任何想法吗?


1
根据support.ssl.com/Knowledgebase/Article/View/19/0/… .pem是一种编码,并且.cer是扩展。不久:.cer文件可能同时包含PEMDER编码。您到底需要什么?(链接应该会对您有所帮助。)
Fabian 2014年

我从以下链接中找到了创建自签名证书的命令:openssl.org/docs/HOWTO/certificates.txt这是全文:如果您不想处理其他证书颁发机构,或者只是想创建测试证书为自己。这类似于创建证书请求,但是创建证书而不是证书请求。
Devarshi

这并不能真正满足您的需求:生成证书的目的是什么?也许是HTTPS服务器?还是某些应用程序的个人认证?但是我想您已经为您的要求得到了足够好的答案。
Fabian

场景是:我们正在android应用程序上创建公共-私有密钥对,我们需要将公共密钥共享到iOS应用程序,我发现共享它的唯一方法是通过自签名证书。iOS API从具有以下扩展名的证书(示例)中提取证书的公钥:some_certificate.cer。现在,我正在尝试通过终端生成some_certificate.cer并验证它是否能够从中提取公钥,并使用该公钥执行加密。
Devarshi

我无法为您提供iOS设备。但是我的理解是.cer扩展名仅由Microsoft使用。如果以下答案对您没有帮助,您可能想在iOS编程相关的地方提问。
Fabian

Answers:


37

您可以使用以下命令:

openssl x509 -inform PEM -in cacert.pem -outform DER -out certificate.cer

2

如果我没记错的话,.cer是DER或Base64编码的文件类型。

openssl x509 -in cacert.pem -out cacert.cer -inform pem -outder DER格式。


1

实际的扩展名与证书无关紧要。通常,.pem文件具有以base64编码形式的x509证书。.cer文件可以是base64或DER编码的(Windows可以识别)。根据您的应用程序,您将需要找出应用程序所需的证书格式。

在base64(PEM)和DER编码之间转换:

openssl x509 -in cert.pem -outform pem -outform der -out cert.cer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.