2017-02-21 1 views
0

私はBouncy Castle(C#)を使用して、WCF Webサービスの自己署名X.509証明書を生成しています。特定のStoreLocation(現在のユーザーではない)にX509証明書をインストールすることはできますか?

ユーザーアカウントで実行されているインストーラ(たとえば、システム管理者アカウント)によって証明書が作成されるというユースケースがあります。インストーラはサービスのWindowsユーザーアカウント(例:マイサービスアカウント)を作成し、これらの証明書を使用します。

私は、マシン/ドメイン上のすべてのユーザーに、唯一の認可サービスアカウント(マイサービスアカウント)に証明書を利用できるようにしたくありません。

このような場合には

それはそうでもないStoreLocation.CurrentUserStoreLocation.LocalMachineは、これを達成することができるでしょうか?

このユースケースを解決するにはどうすればよいでしょうか?

答えて

1

どのアカウントからでも証明書にアクセスできる唯一の方法は、LocalMachineストアに証明書を作成することです。あなたが特定のユーザーストアにそれらを置く場合ではありません。 証明書にはACLがないことに注意してください。しかし、秘密鍵はそうです。

これを行う最も一般的な方法は、証明書自体をLocalMachineストアに保存し、プライベートキーに適切なACLを使用してプライベートキーを保護し、実際にプライベートキーにアクセスする必要があるアカウントにのみアクセス許可を与えますこれは確かにNT Service\<ServiceName>のような仮想サービスアカウントになります。

Windowsの最新バージョンでは、証明書のコンテキストメニューの[すべてのタスク] - > [秘密キーの管理]オプションを使用して、証明書管理MMCスナップインから直接秘密キーのアクセス許可を調整できる必要があります。

+0

ありがとうございました。解決はプログラム的に行われますが、あなたは正しい方向に私を指摘しています。将来の読者のために、[ここ](http://stackoverflow.com/questions/425688/how-to-set-read-permission-on-the-private-key-file-of-x-509-certificate-from- ne)はそのような実装の1つです。 – Willeman

関連する問題