cer, pvk 및 pfx 파일의 차이점은 무엇입니까?


답변:


142

Windows는 X.509 인증서에 .cer 확장자를 사용합니다. 이들은 "이진"(ASN.1 DER)이거나 Base-64로 인코딩 될 수 있으며 PEM (헤더 및 바닥 글 적용)이 가능합니다. Windows는 둘 중 하나를 인식합니다. 인증서의 무결성을 확인하려면 발급자의 공개 키 (다른 인증서)를 사용하여 서명을 확인해야합니다.

Windows는 PKCS # 12 파일에 .pfx를 사용합니다. 이 파일에는 인증서, 인증서 체인, 루트 기관 인증서 및 개인 키를 포함한 다양한 암호화 정보가 포함될 수 있습니다. 개인 키를 비공개로 유지하고 루트 인증서의 무결성을 유지하기 위해 암호로 컨텐츠를 암호로 보호 할 수 있습니다.

Windows는 개인 키 파일에 .pvk를 사용합니다. Windows가 어떤 표준 (있는 경우)을 따르는 지 잘 모르겠습니다. 잘만되면 그들은 PKCS # 8로 인코딩 된 키입니다. Emmanuel Bourg 는 이것이 독점 형식이라고보고합니다. 일부 설명서 가 제공됩니다.

개인 키를 공개해서는 안됩니다. 이들은 .pfx 및 .pvk 파일에 포함되어 있습니다.

일반적으로 인증서 (.cer)와 중간 발급 기관의 인증서 (즉, 루트 CA를 제외한 모든 CA의 인증서) 만 다른 당사자와 교환해야합니다.


7
PVK 파일은 PKCS # 8에 없으며 독점 ​​형식입니다. drh-consultancy.demon.co.uk/pvk.html
Emmanuel Bourg

Windows SDK에서 pvk2pfx.exe 유틸리티를 찾으십시오
BozoJoe

@erickson, .pvk 발명의 요점은 무엇입니까? .pfx로 충분하지 않습니까?
Pacerier

@Pacerier 예, .pfx는 충분합니다. .pvk의 요점이 무엇인지 잘 모르겠습니다. 나는 그것이 무지에서 발명되었다고 추측 할 수 있습니다.
erickson

55

Windows 플랫폼에서 이러한 파일 유형은 인증서 정보에 사용됩니다. 일반적으로 SSL 인증서 및 공개 키 인프라 (X.509)에 사용됩니다.

  • CER 파일 : CER 파일은 X.509 인증서를 저장하는 데 사용됩니다. 일반적으로 웹 서버 보안을 확인하고 식별하기 위해 SSL 인증에 사용됩니다. 이 파일에는 인증서 소유자 및 공개 키에 대한 정보가 포함되어 있습니다. CER 파일은 이진 (ASN.1 DER)이거나 헤더 및 바닥 글 포함 (PEM)이있는 Base-64로 인코딩 될 수 있으며 Windows는 이러한 레이아웃 중 하나를 인식합니다.
  • PVK 파일 : 개인 키를 나타냅니다. Windows는 PVK 파일을 사용하여 다양한 Microsoft 제품의 코드 서명을위한 개인 키를 저장합니다. PVK는 독점 형식입니다.
  • PFX 파일 개인 교환 형식은 PKCS12 파일입니다. 여기에는 인증서, 루트 기관 인증서, 인증서 체인 및 개인 키와 같은 다양한 암호화 정보가 포함됩니다. 개인 키를 비공개로 유지하고 루트 인증서의 무결성을 유지하기 위해 암호로 암호로 보호됩니다. PFX 파일은 IIS와 같은 다양한 Microsoft 제품에서도 사용됩니다.

자세한 정보는 다음을 방문하십시오 : 인증서 파일 : .Cer x .Pvk x .Pfx


4
특정 파일 : .... "파일에 인증서 소유자 및 공개 및 개인 인증서 키에 대한 정보가 포함되어 있습니다."...가 올바르지 않습니다. 그의 대답에서 erickson이 지적한 것처럼 : 공개 키에 대한 정보 만 포함합니다. 개인 키와 공개 키가 모두있는 .cer 파일은 쓸모가 없습니다.
thor_hayek

1
이것은 잘못이다. .Cer 파일에는 개인 키가 없습니다. 답을 향상 시키십시오.
ANewGuyInTown

36

이 주제와 관련하여 관심이있는 모든 사람을위한 개인적이고 집중적 인 메모는 다음과 같습니다.

  • PKCS12PEM 은 모두 공개 키, 개인 키루트 (CA) 인증서 와 같은 전체 인증서 체인을 저장할 수 있습니다 .
  • .pfx == .p12 == " PKCS12 "
    • 완전 암호화
  • .pem == .cer == .cert == " PEM "
    • 머리글과 바닥 글이있는 base-64 (문자열) 인코딩 된 X509 인증서 (이진)
      • base-64 는 기본적으로 "A-Za-z0-9 + /"의 문자열이며, 0-63, 한 번에 6 비트의 이진수 6 비트를 나타내는 데 사용되며 때로는 1 또는 2 "="문자로 표시됩니다. 남은 부분이있을 때 종료 ( "=" "필러 / 정크 / 무시 / 쓰레기"문자)
      • 머리글과 바닥 글은 "----- BEGIN CERTIFICATE -----"및 "----- END CERTIFICATE -----"또는 "----- BEGIN 암호화 된 개인 키 ----와 같습니다. - "및"----- 엔드 암호화 개인 키 ----- "
    • Windows는 .cer 및 .cert를 인증서 파일로 인식합니다.
  • .jks == " 자바 키 저장소 "
    • API가 사용하는 Java 전용 파일 형식
      • .p12 및 .pfx 파일도 JKS API와 함께 사용할 수 있습니다
  • " 신뢰 저장소 "에는 공인 된 신뢰할 수있는 루트 (CA) 인증서가 포함 되며 " 신원 / 키 저장소 "에는 개인의 신원 인증서가 포함됩니다. 그러나 파일 단위는 동일합니다.

그렇다면 .pvk는 어디에 정의되어 있습니까?
zwcloud

@zwcloud 나는 당시에 알고있는 것을 주었다. 다른 답변은 그 사실을 알려줍니다.
Andrew

18

나는 실제로 그렇게 오래 전에 이런 것을 보았습니다 ... msdn에서 그것을 확인 하십시오 (첫 번째 답변 참조)

요약해서 말하자면:

.cer-X.509 표준 형식으로 저장된 인증서. 이 인증서에는 공개 및 개인 키와 함께 인증서 소유자에 대한 정보가 들어 있습니다.

.pvk-파일은 코드 서명을위한 개인 키를 저장하는 데 사용됩니다. .pvk 개인 키 파일을 기반으로 인증서를 만들 수도 있습니다.

.pfx-개인 교환 형식을 나타냅니다. 단일 파일에서 공용 및 개인용 오브젝트를 교환하는 데 사용됩니다. pfx 파일은 .cer 파일에서 만들 수 있습니다. Software Publisher 인증서 를 작성하는 데에도 사용할 수 있습니다 .

의견의 제안에 따라 페이지의 정보를 요약했습니다.


2
링크 자체 외에도 링크 된 내용을 인용하거나 요약하는 것이 좋습니다. 이렇게하면 다음 번에 MS가 사이트를 재 설계 할 때 적절한 크레딧을 제공하고 정보 손실을 방지 할 수 있습니다.
Jonathan Allen

그 링크를 보았지만 질문에 완전히 대답하지는 않습니다.
Jonathan Allen

15
또한 링크의 일부 정보가 잘못되었습니다. 예를 들어 인증서에서 개인 키를 추출 할 수 없습니다. 명백하게.
erickson

위의 의견에 따르면 추출에 관한 것이 아닙니다. .cer 파일에 개인 키를 갖는 것은 의미가 없습니다. .cer 파일은 외부와 공유되어야하므로 공개 키만 가지고 있습니다.
Rajiv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.