2011-10-05 2 views
3

ASP.NET 응용 프로그램이 HTTPS를 통해 웹 서비스에 연결하는 파일이 .p12입니다..p12 파일에 포함 된 모든 인증서 가져 오기

.p12 파일을 로컬 컴퓨터/내 저장소로 가져 오려고합니다. .p12파일에는 두 개 이상의 인증서이 들어 있습니다. 하나는 개인 키를 포함하고 다른 하나는 체인을 완료하는 CA 인증서입니다.

현재 System.Security.Cryptography.X509Certificate.X509Certificate2 개체의 가져 오기 방법을 사용하여이 파일을 저장소로 가져옵니다. 오늘 나는 CA 인증서가 가져 오지 않는다는 것을 알아 차렸고,이 방법을 사용하여 개인 키가 들어있는 주 인증서 만 가져오고 있습니다. MSDN을 자세히 검토 한 결과 가져 오기 방법과 관련하여 다음 규칙을 발견했습니다.

PFX/PKCS12 인증서에는 둘 이상의 인증서가 포함될 수 있습니다. 이 경우 개인 키와 연관된 첫 번째 인증서가 사용되거나 개인 키가 발견되지 않으면 첫 번째 인증서가 사용됩니다.

누구든지 내게 파일의 모든 인증서를 실제로 가져올 .p12 파일을 프로그래밍 방식으로 가져 오는 다른 방법을 제안 할 수 있습니까? 이 기능을 수행하려면 PowerShell을 사용하고 있습니다.

+0

원하는 것을 정확하게 할 수 있습니까? .P12 파일에는 공개 키, 개인 키 및 CA 체인이 포함되어 있습니다. CA 공개 키를 설치 하시겠습니까? – JPBlanc

+0

공개 키, 개인 키 및 CA 공용 키를 포함하여 .p12 파일에 포함 된 모든 인증서를 설치하려고합니다. 내가 PowerShell에서 이것을 수행 할 때부터 -importpfx 플래그와 함께 certutil 명령을 사용해야한다는 연구가 추가로 이루어졌습니다. – Tyler

+0

CA 공개 키가 .P12의 기본 가져 오기에 포함되지 않는다는 것을 알고있는 한. Windows에서 P12 파일을 두 번 클릭하면 루트 CA 인증서 저장소에 CA 공개 키가 가져 오기되지 않습니다. – JPBlanc

답변

1

X509Certificate2.Import 메서드를 사용하는 대신 X509Certficate2Collection.Import 메서드를 사용하십시오. .p12 파일의 모든 인증서를 제공합니다.

그런 다음 적절한 인증서 저장소에 각 인증서를 추가 할 수 있습니다.

관련 문제