문제

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

이 파일과 함께 보관할 권한을 관리하는 데 도움이되는 "Conture -PrivateKey"로 파일 이름 지정을 권장합니다.

다른 팁

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 형식은 말합니다.위키 정의) 파일은 시작과 끝으로 시작하고 끝나야합니다.

.pem-(개인 정보 강화 메일) Base64 인코딩 된 DER 인증서 "----- 시작 인증서 -----"및 "----- 엔드 인증서 -----"

따라서 엄격한 PEM 형식을 기대하는 일부 라이브러리 (Java 에서이 문제가 발생했습니다)의 경우 생성 된 CRT는 '유효하지 않은 PEM 형식'으로 검증에 실패합니다.

시작/종료 인증서로 줄을 복사하거나 grep하더라도 Cert.pem 파일에 붙여 넣으면 작동해야합니다.

여기에 내가하는 일이 매우 깨끗하지 않지만 나에게 효과적으로 작동합니다. 기본적으로 시작 라인에서 시작하는 텍스트를 필터링합니다.

GREP -A 1000 시작 CERT.CRT> CERT.PEM

나는 Godaddy에서 App Engine으로 가려고 노력했다. 트릭은이 라인을 사용하는 것입니다.

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

그런 다음이 지침을 사용했습니다 Google Apps Custom Domain SSL에 문제가 있습니다, 그것은 :

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

privatekey.key 대신에 정확히 그대로 이름을 사용했습니다.

그런 다음 "PEM 인코딩 X.509 인증서"에 대한 Public.Pem을 관리자 콘솔에 업로드하고 "암호화되지 않은 PEM 인코딩 된 RSA 개인 키"에 대한 Private.pem을 업로드했습니다.

.. 그리고 마침내 효과가있었습니다.

Godaddy 인증서를 AWS에 업로드하려고 시도하면 여러 번 실패했지만 결국에는 매우 간단했습니다. .pem으로 아무것도 변환 할 필요가 없습니다. 체인 매개 변수에 Godaddy 번들 인증서를 포함해야합니다.

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. 위의 인증서를 저장하는 터미널 및 GOTO 폴더를 열어줍니다 .P12 파일,
  4. 아래 명령 실행 :

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

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

  5. .pem 파일 준비 "pushcert.pem"입니다.
  • 열린 터미널.
  • 인증서가있는 폴더로 이동하십시오.
  • 인증서로 이름을 대체하여 아래 명령을 실행하십시오.

OpenSSL PKCS12 -in Your_Certificate.p12 -out Your_Certificate.pem -Clcerts

  • 그것이 작동하기를 바랍니다 !!
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top