如何获得的。pem文件。关键。crt文件吗?
题
我怎么可以创建一个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
- 下载证书的暂定门户通过appleId,
- 出口证书从钥匙链和得到的名字(证书。p12),
- 打开端,并转到文件夹中保存上述证书。p12文件,
运行以下命令:
a)
openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes
,b)
openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts
- 你的.pem文件的准备"pushcert.pem".
- 打开端。
- 去到文件夹里你的书处的位置。
- 执行以下命令更换的姓名和证书。
openssl pkcs12-在YOUR_CERTIFICATE.p12出YOUR_CERTIFICATE.pem节点-clcerts
- 希望这将工作!