我怎么可以创建一个PEM文件从一个SSL证书?

这些文件,我必须提供:

  • .crt
  • server.csr
  • server.key
有帮助吗?

解决方案

你的钥匙可能已经在PEM格式,但是刚刚任命。crt。关键。

如果文件的内容开始 -----BEGIN 你可以阅读一个文本编辑:

本文件使用base64,这是可读的,在ASCII,不是二进制的格式。证书已经在PEM format.只是变化的扩展。pem。

如果文件是在binary:

对于服务器。crt,你会用

openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

对于服务器。关键的,使用 openssl rsa 在地方 openssl x509.

服务器。关键是可能的是你的私人钥匙。crt文件的返回,签署、x509certificate.

如果这是一个网络服务器,你不能指定的装载一个独立的私人和公共关键:

你可能需要连接的两个文件。为此使用:

cat server.crt server.key > server.includesprivatekey.pem

我会建议命名的文件"includesprivatekey",以帮助管理的权限保持这个文件。

其他提示

我需要做到这一步后的链接作为指导埃尔伯.在得到殴打,通过对话很多次,最后这是什么工作对我来说:

openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem

感谢 NCZ

编辑:作为@floatingrock说

书不要忘记以前的文件名 file://.因此,它将是这样的:

 aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/

http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html

一个 pem 文件中包含的证书和私人钥匙。它取决于你的格式证书/键都在,但可能是它如此简单:

cat server.crt server.key > server.pem

此外,如果你不想要它要求一个密码,然后需要运行以下命令:

openssl rsa -in server.key -out server.key

这是最好的选择,以创建。pem文件

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts

我已经观察到的是:如果你使用openssl产生的证书,它捕捉到了两种文本的一部分,并base64证书一部分的crt文件。严格pem format说(wiki定义),该文件应该开始和结束时开始和结束。

.pem(私隐增强邮件)Base64编码DER证书, 封闭之间"-----开始的证书-----"和"--结束 证书-----"

因此,对于一些库(I遇到这java),希望严格pem格式,产生crt会失败的验证作为一个'无效pem format'.

即使你复制或查询的线开始/结束的证书,并将其粘贴在了证书。pem文件,它应该的工作。

这里是我做的,不是很干净,但是对我的作品,基本上它过滤器的文本开始从开始行:

查询一1000开始cert。crt>cert。pem

我试图去从编码和应用程序的发动机。没有什么诀窍是使用这一行:

openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr

完全一样,但更换名称与我的域名(而不是它真的甚至是重要的)

我回答了所有的问题有关的共同的姓名/组织www.name.com

然后我打开了企业社会责任、复制、粘贴在去爸爸,那下载它,打开它,导航到解压缩的文件夹,与终端和进:

cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt

然后我用这些指令 麻烦与谷歌的应用程序定义域SSL, ,这是:

openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem

完全一样的是,除了而不是私钥.关键,我使用的名称。加密。priv.关键的,而不是www_mydomain_com.crt,我使用的名称。crt

然后我上传的公众。pem要的管理控制台"PEM encoded X.509证书",载于私人。pem为"未加密的PEM encoded RSA的私人钥匙"..

..和最后的工作。

想上传一个编码证书AWS我失败了好几次,但最终它是相当简单的。不需要转换任何东西。pem。你只是必须确保包括编码束的证书的链中的参数,例如

aws iam upload-server-certificate
    --server-certificate-name mycert
    --certificate-body file://try2/40271b1b25236fd1.crt
    --private-key file://server.key
    --path /cloudfront/production/
    --certificate-chain file://try2/gdig2_bundle.crt

和删除以前的失败上你可以做的

aws iam delete-server-certificate --server-certificate-name mypreviouscert
  1. 下载证书的暂定门户通过appleId,
  2. 出口证书从钥匙链和得到的名字(证书。p12),
  3. 打开端,并转到文件夹中保存上述证书。p12文件,
  4. 运行以下命令:

    a) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes,

    b) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

  5. 你的.pem文件的准备"pushcert.pem".
  • 打开端。
  • 去到文件夹里你的书处的位置。
  • 执行以下命令更换的姓名和证书。

openssl pkcs12-在YOUR_CERTIFICATE.p12出YOUR_CERTIFICATE.pem节点-clcerts

  • 希望这将工作!
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top