[windows] 인증서 및 개인 키에서 .pfx 파일을 만드는 방법은 무엇입니까?

IIS의 웹 사이트에 https를 설치하려면 .pfx 파일이 필요합니다.

인증서 (.cer 또는 pem)와 개인 키 (.crt)라는 두 개의 별도 파일이 있지만 IIS는 .pfx 파일 만 허용합니다.

인증서를 분명히 설치했으며 인증서 관리자 (mmc)에서 사용할 수 있지만 인증서 내보내기 마법사를 선택하면 PFX 형식을 선택할 수 없습니다 (회색으로 표시됨)

프로그래밍 방식으로 수행하는 도구 또는 C # 예제가 있습니까?



답변

openssl을 사용해야합니다.

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

키 파일은 개인 키가 들어있는 텍스트 파일입니다.

루트 CA 및 중간 인증서가있는 경우 여러 -in매개 변수를 사용하여 포함합니다

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt

openssl을 여기에서 설치할 수 있습니다 : openssl


답변

Microsoft Pvk2Pfx 명령 줄 유틸리티에 필요한 기능이있는 것 같습니다.

Pvk2Pfx (Pvk2Pfx.exe)는 .spc, .cer 및 .pvk 파일에 포함 된 공개 키 및 개인 키 정보를 개인 정보 교환 (.pfx) 파일로 복사하는 명령 줄 도구입니다.
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

참고 : C # 솔루션이 필요 / 원하는 경우, http://www.bouncycastle.org/ api를 사용하는 것이 좋습니다.


답변

Windows GUI를 찾고 있다면 DigiCert를 확인하십시오. 방금 이것을 사용했으며 상당히 간단했습니다.

SSL 탭에서 먼저 인증서를 가져 왔습니다. 그런 다음 인증서를 선택하면 키 파일 유무에 관계없이 PFX로 내보낼 수있었습니다.

https://www.digicert.com/util


답변

openssl이나 makecert 또는 그 어떤 것도 필요하지 않습니다. 또한 CA에서 제공 한 개인 키가 필요하지 않습니다. CA가 제공 한 키 및 cer 파일을 사용할 수있을 것으로 기대하지만 “IIS 방식”을 기반으로하지 않는 것이 문제라는 것을 거의 보증 할 수 있습니다. 나는 여기서 나쁘고 어려운 정보를 보는 것에 질려서 주제와 솔루션을 블로그로 만들기로 결정했습니다. 무슨 일이 일어나고 있는지 알고 그것이 얼마나 쉬운 지 알면 나를 안아주고 싶을 것입니다 🙂

PFX가 한 번인 IIS의 SSL 인증서-SSL 및 IIS 설명-http: //rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html

IIS “서버 인증서”UI를 사용하여 “인증서 요청 생성”(이 요청의 세부 사항은이 기사의 범위를 벗어나지 만 해당 세부 사항은 중요 함) 그러면 IIS 용으로 준비된 CSR이 제공됩니다. 그런 다음 해당 CSR을 CA에 제공하고 인증서를 요청하십시오. 그런 다음 그들이 제공 한 CER / CRT 파일을 가져 와서 요청을 생성 한 동일한 위치에서 IIS “인증서 요청 완료”로 돌아갑니다. .CER을 요청할 수 있으며 .CRT가있을 수 있습니다. 그들은 같은 것입니다. 확장명을 변경하거나을 사용하십시오 .확장 드롭 다운 메뉴에서 .CRT를 선택하십시오. 이제 올바른 “친숙한 이름”(* .yourdomain.com, yourdomain.com, foo.yourdomain.com 등)을 입력하십시오. 이것은 중요합니다! 이것은 반드시 CSR을 설정 한 것과 CA가 제공 한 것과 일치해야합니다. 와일드 카드를 요청한 경우 CA에서 와일드 카드를 승인하고 생성해야하며 동일한 와일드 카드를 사용해야합니다. foo.yourdomain.com에 대한 CSR이 생성 된 경우이 단계에서 CSR을 동일하게 제공해야합니다.


답변

.key 및 .pem 파일에서 .pfx 파일을 만들었습니다.

이렇게 openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx


답변

https://msdn.microsoft.com/en-us/library/ff699202.aspx

((기사의 관련 인용문은 다음과 같습니다))

다음으로 배포에 서명하는 데 사용할 .pfx 파일을 만들어야합니다. 명령 프롬프트 창을 열고 다음 명령을 입력하십시오.

PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword

어디:

  • pvk-yourprivatekeyfile.pvk는 4 단계에서 만든 개인 키 파일입니다.
  • spc-yourcertfile.cer는 4 단계에서 만든 인증서 파일입니다.
  • pfx-yourpfxfile.pfx는 만들 .pfx 파일의 이름입니다.
  • po-yourpfxpassword는 .pfx 파일에 할당하려는 비밀번호입니다. Visual Studio에서 프로젝트에 .pfx 파일을 처음 추가 할 때이 암호를 입력하라는 메시지가 표시됩니다.

(선택적으로 (OP가 아니라 향후 독자를 위해) .cer 및 .pvk 파일을 처음부터 새로 만들 수 있습니다) (위에서 수행하기 전에 수행). mm / dd / yyyy는 시작 및 종료 날짜의 자리 표시 자입니다. 전체 설명서는 msdn 기사를 참조하십시오.

makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r


답변

makecert 도구를 사용해야합니다.

관리자 권한으로 명령 프롬프트를 열고 다음을 입력하십시오.

makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"

여기서 <CertifcateName>= 만들 인증서의 이름입니다.

그런 다음 시작 메뉴에서 certmgr.msc를 입력하여 관리 콘솔에 대한 인증서 관리자 스냅인을 열고 개인> 인증서를 클릭하면 인증서를 사용할 수 있습니다.

여기 기사가 있습니다.

https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/