Windows サービスで使用する x509 証明書を保存したいと考えています。私が抱えている問題は、この証明書をどこに保存するかです。Windows サービス固有の証明書ストアを持つことができる Microsoft 管理コンソール (mmc) 証明書スナップインを使用しているようです。問題は、C# 経由でこれらの証明書を取得する方法がわからないことです。
- mmc と証明書スナップインを使用して、サービス ストアに証明書をインストールしました。
次のコードでtopshelfを使用して Windows サービスを作成し、インストールしました。
var localStore = new X509Store(StoreLocation.LocalMachine);
localStore.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 c in localStore.Certificates)
{
_log.Debug("local: certificate for {0} - has private key {1}".ToFormat(c.SubjectName.Name, c.HasPrivateKey));
}
var userStore = new X509Store(StoreLocation.CurrentUser);
userStore.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 c in userStore.Certificates)
{
_log.Debug("user: certificate for {0} - has private key {1}".ToFormat(c.SubjectName.Name, c.HasPrivateKey));
}
Windows サービスのストアに証明書が表示されません。証明書をローカル コンピューターの証明書ストアに追加すると、Windows サービスは証明書を認識します。
サービス ストアに証明書を追加するための mmc の優れたツールにはすべて、目的が必要です。