파일 업로드
  1. base64hub
  2. 키와 해시
  3. DER → PEM

.cer, .der 파일용 DER → PEM 변환기

바이너리 .cer나 .der 파일을 놓거나 JWK, SAML 메타데이터의 Base64 DER를 붙여넣으면 올바른 -----BEGIN …----- 레이블이 붙은 PEM 블록이 나옵니다.

무료 가입 없음, 제한 없음 로컬 업로드 없음 레이블 ASN.1 구조에서 감지 업데이트 2026. 10. 27.
입력 –DER –출력 –

브라우저에서 처리됩니다. 이 페이지는 데이터를 어디로도 보낼 수 없습니다 – 확인 방법

DER를 PEM으로 변환하는 방법

  1. .der, .cer, .crt 파일을 상자에 놓으세요. 바이너리 입력은 바이트로 읽습니다. 파일 대신 한 줄 Base64 DER나 30 82 01 b7 … 같은 hex를 붙여넣어도 됩니다.
  2. 변환 형식은 PEM (64열) 그대로 두세요.
  3. PEM 레이블은 자동 감지로 두세요. 변환기가 ASN.1을 읽고 CERTIFICATE, CERTIFICATE REQUEST, PUBLIC KEY, PRIVATE KEY 등을 씁니다. 도구가 특정 레이블을 고집할 때만 직접 고르세요.
  4. 필요하면 Windows 줄 끝 (CRLF) 옵션을 체크한 뒤 출력 복사나 .pem 다운로드를 누르세요.

검사로 전환하면 변환한 내용을 확인할 수 있습니다. 주체, 만료일, 지문이 카드에 나옵니다.

DER 파일과 헤더 없는 Base64는 어디서 오나

출처받게 되는 것
Windows 인증서 내보내기, “DER로 인코딩된 바이너리 X.509(.CER)”바이너리 DER
-rfc 없이 실행한 Java keytool -exportcert바이너리 DER
인증서의 CA 발급자 URL(AIA 확장)대개 DER .cer
JWK나 JWKS의 x5c인증서마다 한 줄 Base64 DER
SAML 메타데이터의 <ds:X509Certificate>Base64 DER, 줄 바꿈이 있을 때도 있음
패킷 캡처, HSM과 스마트카드 도구hex 덤프

이 모두가 같은 PEM이 됩니다. 443바이트 DER 인증서는 656바이트 PEM이 됩니다. Base64 592자가 열 줄에 걸쳐 들어가고 BEGIN과 END 줄이 더해집니다.

PEM 형식 요약

RFC 7468이 파서가 기대하는 형식을 설명하며, 출력은 이를 따릅니다.

-----BEGIN CERTIFICATE-----
MIIBtzCCAV2gAwIBAgIUfX6gOa1S96OttEsj3WbuIdu0cE0wCgYIKoZIzj0EAwIw
...64 characters per line, the last line shorter...
-----END CERTIFICATE-----
  • BEGIN과 END의 레이블은 정확히 같아야 합니다.
  • 본문 줄은 = 패딩이 있는 표준 Base64 64자입니다. URL-safe 알파벳(-와 _)이나 패딩 없는 입력도 받으며 표준 형식으로 씁니다.
  • 한 파일에 든 여러 인증서는 블록을 이어 붙인 것입니다. fullchain.pem과 CA 번들이 그렇게 만들어집니다. 직접 만들려면 DER 인증서를 하나씩 변환해 리프 인증서부터 차례로 블록을 붙여넣으세요.

OpenSSL, Python, 셸에서 DER를 PEM으로

openssl x509 -inform der -in cert.cer -out cert.pem
openssl pkey -inform der -in key.der -out key.pem
openssl req  -inform der -in app.der -out app.csr

오래된 OpenSSL 빌드는 -inform der를 빠뜨리면 unable to load certificate로 실패하며, 최근 빌드는 DER를 스스로 감지합니다. x5c 항목 같은 한 줄 Base64 문자열이라면 다음과 같이 합니다.

{ echo '-----BEGIN CERTIFICATE-----'; echo "$B64" | fold -w 64; echo '-----END CERTIFICATE-----'; } > cert.pem

Python에는 이 기능이 내장되어 있습니다. ssl.DER_cert_to_PEM_cert(open("cert.der", "rb").read())입니다. 더 많은 예시는 OpenSSL과 Python 페이지에 있습니다.

자주 생기는 문제

  • “PEM도 아니고 올바른 Base64 DER도 아닙니다” 또는 "… 바이트 위치에서 올바른 DER/ASN.1이 아닙니다": Base64가 손상되었거나 잘렸거나 DER가 아닙니다. .p12나 .pfx 파일도 DER이지만 내용이 암호화되어 있으므로 대신 openssl pkcs12로 변환하세요.
  • 레이블이 DATA로 표시됨: 구조를 인증서, 키, 요청으로 인식하지 못한 것입니다. 바이트는 그래도 변환되므로, 무엇인지 안다면 레이블을 직접 지정하세요.
  • 처음부터 PEM이었던 파일: 확장자와 달리 PEM인 .cer 파일도 있습니다. 이때 출력은 줄만 다시 맞춘 같은 인증서이며 따로 변환할 것은 없었습니다. 인증서 디코더에서 내용을 볼 수 있습니다.
  • 반대 방향이 필요할 때: PEM을 DER로는 .der 다운로드, 한 줄 Base64, hex를 제공합니다.

자주 묻는 질문

내 .cer 파일이 DER인지 PEM인지 어떻게 알 수 있나요?

텍스트 편집기로 열어 보세요. -----BEGIN CERTIFICATE----- 텍스트가 읽히면 PEM이고, 읽을 수 없는 바이너리면 DER이며 첫 바이트가 0x30입니다. Linux와 macOS의 file 명령은 두 경우에 각각 PEM certificate와 Certificate, Version=3을 출력합니다.

SAML 메타데이터의 X509Certificate 값을 PEM 파일로 바꾸려면 어떻게 하나요?

<ds:X509Certificate> 안의 Base64 텍스트를 상자에 붙여넣으세요. 헤더 없는 DER이므로 변환기가 -----BEGIN CERTIFICATE-----를 붙이고 64자에서 줄을 바꾼 뒤 블록을 닫습니다.

DER 개인 키도 여기서 PEM으로 바꿀 수 있나요?

됩니다. PKCS#8, PKCS#1 RSA, SEC1 EC 키를 감지해 PRIVATE KEY나 EC PRIVATE KEY 같은 알맞은 레이블을 붙입니다. 변환은 로컬에서 이루어지며 키 값은 페이지에 표시되지 않습니다.

Windows 줄 끝 (CRLF)은 언제 체크해야 하나요?

Windows 도구나 엄격한 파서가 파일을 거부할 때만 체크하세요. 대부분의 소프트웨어는 둘 다 받으며, RFC 7468은 PEM에서 두 줄 끝 방식을 모두 허용합니다.