2012-01-18 7 views
0

인증서를 설치하고 사용할 클라이언트에 소프트웨어를 배포해야합니다. 두 파일 (.pfx 및 exe)을 하나 (.pfx가 포함 된 .exe)로 배포하고 싶지 않습니다.exe ​​파일에 .pfx 인증서 첨부

지금 내가하고있는 일은 위치에서 인증서를 가져 오는 것입니다.

X509Certificate2^ x509 = gcnew X509Certificate2; 
x509->Import("C:\\Tmp\\certficate.pfx"); 

가능합니까?

답변

10

항상 인증서 데이터를 리소스로 포함 할 수 있습니다.

경고 : 한 사람이 실행 파일을 받으면 PFX 파일을 매우 쉽게 꺼낼 수 있습니다.

실행 파일을 안전하게 배포 할 수 있습니까? 여기

은 증류수 거친 단계입니다 :

  • http://www.spikezilla-software.com/blog/?p=24이 프로젝트에 PFX를 추가합니다. 그런 다음 파일을 한 번 클릭하고 속성 창에서, 포함 리소스
  • 에 빌드 작업을 설정 포함 된 PFX 파일을 읽고이 C#을 인증서

를 가져하지만 당신은 C로 변환 할 수 있어야합니다 ++/CLI 꽤 쉽게 :

var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyFile.pfx"); 
var bytes = new byte[stream.Length]; 
stream.Read(bytes, 0, bytes.Length); 
var cert = new X509Certificate2(bytes, "certPassword"); 
+0

답장을 보내 주셔서 감사합니다. 문제가 발견되었습니다. exe는 공개되어 누구나 가질 수 있습니다. 그렇다면 어떻게 인증서를 안전하게 배포 할 수 있습니까? – DropTheCode

+0

정말 좋은 대답을 해주길 바래요. 보조 질문 "PFX 파일을 안전하게 배포하는 방법"을 게시 할 가치가 있습니다. – jglouie

+0

좋아, 할게. 고맙습니다. – DropTheCode

0

이것은 내가 그것을 묻었을 때 나를 위해 일했다.

byte[] cert = Properties.Resources.nameOfCertificate; 
X509Certificate2 x509 = new X509Certificate2(); 
x509.Import(cert, "password", X509KeyStorageFlags.MachineKeySet); 
관련 문제