SSL 인증서에서 PEM 파일을 작성하는 방법
이것들은 내가 사용할 수있는 파일입니다 :
.crt
server.csr
server.key
답변
키는 이미 PEM 형식이지만 .crt 또는 .key로 이름이 지정되었습니다.
파일 내용이 시작되어 -----BEGIN
텍스트 편집기에서 읽을 수있는 경우 :
이 파일은 이진 형식이 아닌 ASCII로 읽을 수있는 base64를 사용합니다. 인증서는 이미 PEM 형식입니다. 확장자를 .pem으로 변경하십시오.
파일이 이진 파일 인 경우 :
server.crt의 경우 다음을 사용합니다.
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem
server.key의 경우 openssl rsa
대신 사용하십시오 openssl x509
.
server.key는 개인 키일 수 있으며 .crt 파일은 반환되고 서명 된 x509 인증서입니다.
웹 서버용이고 별도의 개인 및 공개 키로드를 지정할 수없는 경우 :
두 파일을 연결해야 할 수도 있습니다. 이를 위해 :
cat server.crt server.key > server.includesprivatekey.pem
이 파일로 유지하는 권한을 관리하는 데 도움이되도록 “includesprivatekey”를 사용하여 파일 이름을 지정하는 것이 좋습니다.
답변
AWS ELB를 위해이 작업을 수행해야했습니다. 대화 상자에 여러 번 구타당한 후에 마침내 이것이 나를 위해 일한 것입니다.
openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem
감사합니다 NCZ
편집 : @ floatingrock이 말합니다
AWS에서는 파일 이름 앞에을 붙여야합니다 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을 사용하여 인증서를 생성하면 crt 파일에서 텍스트 부분과 base64 인증서 부분을 모두 캡처합니다. 엄격한 pem 형식은 파일이 BEGIN 및 END로 시작하고 끝나야 한다고 말합니다 ( wiki 정의 ).
.pem – (개인 정보 보호 강화 된 메일) Base64로 인코딩 된 DER 인증서로 “—– BEGIN CERTIFICATE —–“와 “—– END CERTIFICATE —–“로 묶여 있습니다.
따라서 엄격한 pem 형식을 기대하는 일부 라이브러리 (Java에서 이것을 만났습니다)의 경우 생성 된 crt는 ‘유효하지 않은 pem 형식’으로서 유효성 검사에 실패합니다.
BEGIN / END CERTIFICATE를 사용하여 행을 복사하거나 grep하여 cert.pem 파일에 붙여 넣어도 작동합니다.
여기에 내가하는 일이 매우 깨끗하지는 않지만 저에게 효과적입니다. 기본적으로 BEGIN 줄에서 시작하는 텍스트를 필터링합니다.
grep -A 1000 BEGIN cert.crt> cert.pem
답변
godaddy에서 app 엔진으로 이동하려고했습니다. 트릭은이 줄을 사용하여 무엇을 했습니까?
openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr
정확하게 그대로, 이름을 내 도메인 이름으로 바꾸십시오 (실제로 중요하지는 않습니다)
그리고 저는 www.name.com으로 일반적인 이름 / 조직과 관련된 모든 질문에 답변했습니다
그런 다음 csr을 열고 복사하여 go daddy에 붙여 넣은 다음 다운로드하여 압축을 풀고 터미널이있는 압축이 풀린 폴더로 이동하여 입력했습니다.
cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt
그런 다음 Trouble의 다음 지침을 Google Apps 맞춤 도메인 SSL과 함께 사용했습니다 .
openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem
privateKey.key 대신 name.unencrypted.priv.key를 사용하고 www_mydomain_com.crt 대신 name.crt를 사용하는 것을 제외하고는 그대로
그런 다음 “PEM으로 인코딩 된 X.509 인증서”에 대한 관리 콘솔에 public.pem을 업로드하고 “암호화되지 않은 PEM으로 인코딩 된 RSA 개인 키”에 대해 private.pem을 업로드했습니다.
.. 그리고 마침내 효과가있었습니다.