.pem, .cer 및 .der의 차이점은 무엇입니까?


84

.pem, .cer및 의 차이점은 무엇입니까 .der?

내가 아는 한 .cer공개 키를 포함합니다. 이 공개 키를 사용하여 데이터를 암호화하는 데 사용할 수있는 개방형 프레임 워크가 있습니까?


2
모든 키를 저장할 수있는 파일 형식이라고 생각합니다. 자유롭게 변환 할 수있는 도구가 있습니다.
IMSoP 2014 년

1
@IMSoP 오른쪽 당신은, 그러나 .CER는 .der과하기 위해 cp수행 할 수 있습니다 명령 :
마틴 Bodewes

나는 같은 거기서 많은 예제 것 같다, 아이폰 OS의 특정 부분을 삭제 한 이것이 다른 하나 .PEM를 사용하여.
Maarten Bodewes

답변:


88

.pem, .cer.derX.509 v3 인증서를 포함 할 수있는 파일의 모든 파일 확장자입니다.

.der확장

DER는 인증서를 구성하는 데이터를 인코딩하는 방법입니다. DER 자체는 모든 종류의 데이터를 나타낼 수 있지만 일반적으로 인코딩 된 인증서 또는 CMS 컨테이너를 설명합니다.

인증서의 구조는 ASN.1 데이터 표현 언어를 사용하여 설명됩니다. BER 및 DER는 ASN.1에서 설명하는 데이터에 대한 이진 인코딩 방법입니다.

.pem확장

PEM은 바이너리 데이터를 문자열 (ASCII 아머)로 인코딩하는 방법입니다. 여기에는 머리글 및 바닥 글 행 (인코딩되는 데이터 유형 지정 및 데이터가 함께 연결된 경우 시작 / 종료 표시)이 포함되며 중간에있는 데이터는 기본 64 데이터입니다. 인증서를 인코딩하는 경우 DER 인증서의 기본 64 인코딩 만 포함됩니다. PEM은 Privacy Enhanced Mail의 약자입니다. 메일에는 DER과 같은 인코딩되지 않은 이진 값이 직접 포함될 수 없습니다.

PEM은 또한 공개 / 개인 키, 인증서 요청 등과 같은 인증서와 관련된 다른 종류의 데이터를 인코딩 / 보호 할 수 있습니다. 콘텐츠가 공통 X509v3 인증서 인 경우 PEM은 다음과 같이 인코딩됩니다.

-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
    with line endings and padding with equals signs ...
-----END CERTIFICATE-----

PEM 파일에는 전체 인증서 체인이 포함될 수도 있습니다. 여기서 체인은 서비스의 리프 / 종료 인증서로 시작하고 그 뒤에 서명 한 인증서 (일반적으로 신뢰할 수있는 루트 인증서는 포함되지 않음)가 이어집니다. 따라서 인증서가 누락 된 경우 첫 번째 인증서 뒤를 살펴볼 수 있습니다.

.cer또는 .crt확장

.cer인증서를 의미합니다. 일반적으로 DER로 인코딩 된 데이터이지만 Windows는 PEM으로 인코딩 된 데이터도 허용 할 수 있습니다. file100 % 확실하게 파일 내 내용을 확인 하려면 내용 (예 : posix 시스템 에서 유틸리티 사용 )을 살펴 봐야합니다.

기타 OpenSSL 형식

한 번 봐 가지고 이 답변 은 OpenSSL에서 지원하는 다양한 목록은.


공개 키를 사용하려면 포함 (및 인증서에 의해 서명 인증서의 서명을) 당신은 어떤 라이브러리가 파싱 X.509 인증서 및 수행 RSA 암호화를 사용해야합니다. PEM 인코딩을 감지 / 처리하는 도구를 사용하거나 먼저 PEM 인코딩을 제거하여 인증서를 DER로 변환 할 수 있습니다.

OpenSSL 명령 줄에는 PEM과 DER 사이에서 변환하거나, 높은 수준의 인증서 정보를 인쇄하거나, ASN.1을 구문 분석하여 거기에있는 항목에 대한 낮은 수준의보기를 얻을 수있는 많은 옵션이 포함되어 있습니다.

세부

대부분의 ASN.1 구조와 마찬가지로 DER로 인코딩 된 인증서는 항상 30ASN.1의 태그 인코딩 인 바이트로 시작합니다 SEQUENCE. 파일에서 반복이 많이 발생하면 괜찮습니다. 엄격하게 정의 된 구조 일뿐 입니다.

마찬가지로 PEM으로 인코딩 된 파일 내의 기본 64 M는 ASN.1 SEQUENCE이 byte로 시작 하므로 항상 문자 로 시작 30하므로 처음 6 비트는 001100이며, 이는 문자의 인덱스 인 숫자 12로 변환됩니다 M. 알파벳의 열세 번째 문자.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.