1

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

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

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

出来ますか ?

4

2 に答える 2

12

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

ただし、警告が1つあります。誰かが実行可能ファイルを入手した場合、PFXファイルを非常に簡単に引き出すことができます。

実行可能ファイルを安全に配布できますか?

http://www.spikezilla-software.com/blog/?p=24から抜粋したいくつかの大まかな手順は次のとおりです。

  • PFXをプロジェクトに追加します。次に、ファイルを1回クリックし、[プロパティ]ウィンドウで[ビルドアクション]を[埋め込みリソース]に設定します。
  • 埋め込まれた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");
于 2012-01-18T17:41:07.717 に答える
2

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

byte[] cert = Properties.Resources.nameOfCertificate;
X509Certificate2 x509 = new X509Certificate2();
x509.Import(cert, "password", X509KeyStorageFlags.MachineKeySet);
于 2016-02-22T22:09:49.453 に答える