2012-01-18 19 views
0

証明書をインストールして使用するnクライアントにソフトウェアを導入する必要があります。私は2つのファイル(.pfxとexe)を1つだけ(.pfxを含む.exe)展開したくありません。exeファイルに.pfx証明書を添付する

私が今やっていることは、場所から証明書をインポートすることです。

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

可能ですか?

答えて

10

いつでも証明書データをリソースとして埋め込むことができます。

1つの警告:誰かが実行可能ファイルを取得した場合、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

私は本当にここであなたのために良い答えがあったらいいのに。 2番目の質問「PFXファイルを安全に配布する方法」を投稿する価値があるかもしれません。 – jglouie

+0

さて、私はそれを行います。ありがとうございました。 – DropTheCode

0

これは私がそれを埋め込んだ後私のために働いた。

byte[] cert = Properties.Resources.nameOfCertificate; 
X509Certificate2 x509 = new X509Certificate2(); 
x509.Import(cert, "password", X509KeyStorageFlags.MachineKeySet); 
関連する問題