programing

인증서와 개인 키로 .pfx 파일을 만드는 방법

stoneblock 2023. 4. 19. 21:53

인증서와 개인 키로 .pfx 파일을 만드는 방법

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

증명서(.cer 또는 pem)와 개인키(.crt)의 2개의 파일이 있습니다만, IIS에서는 .pfx 파일만을 사용할 수 있습니다.

증명서를 설치했는데 증명서 매니저(mmC)에서 사용할 수 있지만 [Certificate Export Wizard]를 선택하면 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

예를 들어 nginx와 함께 사용하는 번들 crt 파일이 있는 경우 이를 증명서와 함께 모두 하나로 전달할 수 있습니다.

cat domain.name.crt | tee -a domain.name.bundled.crt
cat intermediate.crt | tee -a domain.name.bundled.crt
cat rootca.crt | tee -a domain.name.bundled.crt
openssl pkcs12 -export -out domain.name.pfx \
  -inkey domain.name.key \
  -in domain.name.bundled.crt 

openssl은 openssl에서 설치할 수 있습니다.

Windows GUI 를 찾고 있는 경우는, DigiCert 를 확인해 주세요.방금 이걸 썼는데 꽤 심플했어요.

SSL 탭에서 먼저 인증서를 Import했습니다.그런 다음 증명서를 선택하면 키 파일을 포함하거나 포함하지 않고 PFX로 내보낼 수 있습니다.

https://www.digicert.com/util

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

Pvk2Pfx(Pvk2Pfx.exe) .spc, .cer .pvk 파 pv pv 。pvk pv 。
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspxhttpmsdn..com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

주의: C# 솔루션이 필요한 경우, http://www.bouncycastle.org/ api의 사용을 검토해 주십시오.

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 "Server Certificates" UI를 사용하여 "Generate Certificate Request"를 수행합니다(이 요청의 세부 정보는 이 문서에서는 다루지 않지만 이러한 세부 정보는 중요합니다).이것에 의해, IIS 용 CSR 가 준비됩니다.그런 다음 해당 CSR을 CA에 제공하고 증명서를 요구합니다.그런 다음 CER/CRT 파일을 가져와 요청을 생성한 동일한 위치에서 IIS로 돌아가 "증명서 요청 완료로 돌아갑니다.를 요구할 수 있습니다.CER 및 를 사용할 수 있습니다.CRT요 같은 거예요확장자를 변경하거나 .확장자 드롭다운을 사용하여를 선택합니다.CRT. 이제 적절한 "친숙한 이름"을 제공하십시오.*.yourdomain.example,yourdomain.example,foo.yourdomain.example 이것은 은 CSR의 설정 및 해야 합니다이것은 CSR의 설정 내용 및 CA가 제공한 내용과 일치해야 합니다.와일드카드 입력을 요구했을 경우 CA가 와일드카드를 승인 및 생성해야 하며 동일한 와일드카드를 사용해야 합니다.가 CSR용으로 foo.yourdomain.example 단계에서도 해야 합니다

OpenSSL을 설치할 필요가 없는 Windows용 솔루션

최근에 같은 문제를 해결하려고 했는데, openssl이 설치되어 있지 않은 Windows 노트북(설치할 관리자 권한도 없음)밖에 없었습니다.에는 「」라고 하는 유틸리티가 있는 것이 되었습니다.certutil.crt 파일과 .key 파일을 .pfx로 조합할 수 있습니다.의사가 왔어요

를 새로 놓고, ..crt주요 파일이 포함되어 있습니다.두 파일의 이름을 같은 이름(확장자만 다름)으로 변경합니다.

{{sitename}}.crt
{{siteName}}.key

를 "txt" - "txt"로 하십시오..key.

해당 cmd를 실행합니다.certutil -mergepfx [INPUTFILE] [OUTPUTFILE]

예:

파일: " " " " :mySite.crt

파일: 키 key::mySite.key

certutil "certutil" 명령:certutil -mergepfx mySite.crt mySite.pfx

입력이 됩니다..pfx대상 시스템에서 인증서를 가져올 때 필요하므로 파일 - 기억/저장하는 것을 잊지 마십시오.

.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 - 개인 키 파일.pvk는 스텝4에서 작성한 개인 키 파일입니다.
  • spc - yourcertfile.cer는 4단계에서 작성한 인증서 파일입니다.
  • pfx - yourpfxfile.pfx는 작성하는 .pfx 파일의 이름입니다.
  • po - yourpfxpassword는 .pfx 파일에 할당하는 비밀번호입니다.Visual Studio의 프로젝트에 .pfx 파일을 처음 추가할 때 이 암호를 입력하라는 메시지가 표시됩니다.

(옵션으로 (OP가 아닌 장래의 리더를 위해서) .cer 및 .pvk 파일을 처음부터 작성할 수 있습니다.(이 작업은 상기 전에 실시합니다).mm/dd/yyy는 시작일과 종료일의 플레이스 홀더입니다.자세한 내용은 msdn 문서를 참조하십시오.

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

이 링크에서:

필요에 따라 OpenSSL과 함께 이 간단한 명령 시퀀스를 사용하여filessl.key(SSL 증명서파일), 및filessl.crt(SSL 증명서 파일):

openssl genrsa 2048 > filessl.key
chmod 400 filessl.key
openssl req -new -x509 -nodes -sha256 -days 365 -key filessl.key -out filessl.crt

여기까지는 인터랙티브 폼에 응답해야 합니다(다른 투고에서는 https://stackoverflow.com/a/49784278/7856894)과 같은 레퍼런스 정보를 참조할 수 있습니다.

그런 다음 이 마지막 명령을 계속 진행하면 Export Password 입력이 요구됩니다.

openssl pkcs12 -export -out filessl.pfx -inkey filessl.key -in filessl.crt

Ready는 에서 SSL 증명서 파일을 생성했습니다.PFX(또는 .P12) 형식:filessl.pfx.

이것은 *.cer 파일을 *.pfx 파일로 변환하는 가장 쉬운 방법입니다.

DigiCert에서 휴대용 증명서 컨버터를 다운로드하기만 하면 됩니다.https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

실행 후 파일을 선택하고 *.pfx!!

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

명령 프롬프트를 admin으로 열고 다음을 입력합니다.

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

서 ★★★★★<CertifcateName>=이 되다

그런 다음 [시작(Start)]메뉴에 certmgr.msc를 입력하고 [개인(personal)]> [증명서(certificates)]> [증명서(certificates)]를 클릭하면 관리 콘솔의 증명서 매니저 스냅인을 열 수 있습니다.

여기 기사가 있습니다.

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

당신의 요구 사항에 대한 링크를 받았습니다.OpenSSL을 사용한 PFX로의 CRT 및 KEY 파일 결합

위 링크에서 추출합니다.

루트 CA 증명서는 나중에 필요하기 때문에 먼저 기존 .crt 파일에서 추출해야 합니다..crt를 열고 [Certification Path]탭을 클릭합니다.

맨 위의 인증서(이 경우 VeriSign)를 클릭하고 인증서 보기를 누릅니다.[ Details ]탭을 선택하고 [Copy to File...]를 클릭합니다.

[ Base - 64 encoded X . 509 ( . ) ]를 선택합니다.CER) 증명서 rootca.cer 등의 이름으로 저장합니다.다른 파일과 같은 폴더에 저장합니다.

이름을 rootca.cer에서 rootca.crt로 변경합니다.이것에 의해, PFX 파일을 작성할 수 있는 파일이 폴더에 3개 있습니다.

여기서 OpenSSL이 필요합니다.Windows다운로드해 인스톨 할 수도 있고, OSX 로 간단하게 터미널을 열 수도 있습니다.

편집:

  1. 증명서 설치 방법에 대한 단계별 정보가 포함된 지원 링크가 있습니다.

  2. [ ]를 선택합니다..pfx아, 아, 아, 아, 아, 아, 아, 아, 아.

    중요: 증명서를 .pfx 형식으로 내보내려면 증명서를 요구한 머신과 동일한 절차를 수행해야 합니다.

  3. Import한 파일을 서버에 업로드 할 수 있습니다.

MMC에서 인증서를 사용할 수 있다고 하면 "현재 사용자" 또는 "로컬 컴퓨터"에서 사용할 수 있습니까?개인 키가 로컬 컴퓨터에 있는 경우에만 내보낼 수 있습니다.

MMC에 인증서 스냅인을 추가하고 인증서를 관리할 계정을 선택할 수 있습니다.[로컬 컴퓨터]를 선택합니다.증명서가 없는 경우 스토어를 우클릭하여 [All Tasks]> [ Import ]를 선택하여 증명서를 Import합니다.

이제 인증서 스냅인의 로컬 컴퓨터 버전에서 가져온 인증서로 이동합니다.증명서를 오른쪽 클릭하여 [All Tasks]> [ Export ]를 선택합니다.내보내기 마법사의 두 번째 페이지에 개인 키를 내보낼지 묻는 메시지가 나타납니다.[Yes] 를 선택합니다.이제 PFX 옵션만 사용할 수 있게 됩니다([아니오(No)]를 선택하고 개인 키를 내보내는 옵션은 현재 사용자 계정에서 사용할 수 없습니다).

PFX 파일의 패스워드를 설정해, 증명서명을 설정하도록 요구됩니다.

맥북에 리브레가 있는 openssl을 써봤는데SSL v2.8.3에서 "개인 키와 일치하는 인증서가 없습니다" 오류가 발생했습니다.도메인 증명서 1개, 중간 증명서 2개, 루트 증명서 1개를 가지고 있었습니다.그래서 다음 명령어를 사용하여 정상적으로 동작했습니다.

openssl pkcs12 -export -clcerts -inkey private.csr.key -in domain.name.crt -certfile intermediate1.crt -certfile intermediate2.crt -certfile root.crt -out domain.name.p12 -name "Your Name"

Import 중에 사용할 비밀번호를 입력하도록 요구됩니다.이 명령어는 둘 다 같기 때문에 .p12 파일을 .pfx로 이름을 변경할 수 있습니다.

저도 같은 문제를 겪고 있었어요.문제는 확장 SSL 검증 프로세스가 완료되기 전에 초기 인증서 요청을 생성한 컴퓨터가 충돌했다는 것입니다.새 개인 키를 생성한 다음 인증서 공급자로부터 업데이트된 인증서를 가져와야 했습니다.컴퓨터에 개인 키가 없으면 인증서를 pfx로 내보낼 수 없습니다.옵션이 회색으로 표시됩니다.

OpenSSL의 GUI 버전처럼 "X 증명서와 키 매니저" 또는 xca.exe를 홍보하고 싶습니다.이를 통해 다음 단계에 따라 pfx 파일을 생성할 수 있습니다.

  1. 개인 키 탭에서 개인 키를 가져옵니다.
  2. "인증서" 탭에서 인증서를 가져옵니다.
  3. 증명서를 선택하여 pfx 파일을 생성하고 "Export"를 선택하여 포맷으로 PKCS #12를 선택합니다.

바로 그겁니다.

대부분의 경우 증명서를 PFX(개인 키 포함)로 내보낼 수 없는 것은 MMC/IIS가 개인 키(CSR 생성에 사용됨)를 찾을 수 없거나 액세스할 수 없기 때문입니다.이 문제를 해결하기 위해 수행한 단계는 다음과 같습니다.

  • 관리자로서 MMC 실행
    • MMC를 사용하여 CSR를 생성합니다.증명서를 내보낼 수 있도록 하려면 다음 절차를 따릅니다.
  • CA에서 증명서(crt + p7b)를 취득하면 Import합니다(Personal\Certificates, and Intermediate Certification Authority\Certificates).
  • 중요: 새 인증서(개인\증명서) 모든 작업을 마우스 오른쪽 버튼으로 클릭합니다.개인 키를 관리하고 계정 또는 모든 사용자에게 권한을 할당합니다(위험!).완료되면 이전 권한으로 돌아갈 수 있습니다.
  • 이제 인증서를 마우스 오른쪽 버튼으로 클릭하고 모든 작업을 선택합니다.내보내면 개인키를 포함한 증명서를 PFX 파일로 내보낼 수 있으며, Azure에 업로드할 수 있습니다!

이게 도움이 됐으면 좋겠네요!

저는 작은 콘솔 앱을 만들었습니다.PEM증명서 파일 및 개인 키 파일을 하나의 .pfx로 만듭니다.PKCS12증명서 파일BouncyCastle 도서관을 이용합니다.

My Github repo : https://github.com/nklkli/PEM-to-PKCS12

자유롭게 코드를 수정하여 비밀번호로 보호된 *.pfx를 만듭니다.

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out 인증서.pfx

언급URL : https://stackoverflow.com/questions/6307886/how-to-create-pfx-file-from-certificate-and-private-key