証明書の秘密鍵にアクセスする必要があるアプリケーションがあります。また、証明書をセットアップする Nightlybuild もあります (certmgr を使用して pfx ファイルからインポートします)。これは、証明書のセットアップと証明書へのアクセスが、ログインした同じ Windows ユーザー (Windows7) で実行されている限り、非常にうまく機能します。
ここで、証明書の秘密鍵にアクセスする必要があるプログラムを別のユーザーが呼び出すテスト (Nightlybuild 中に自動的に実行される) を紹介したいと思います。私は MMC コンソール -> すべてのタスク -> 管理に苦労しています。秘密鍵。
私にとっては、「秘密鍵の管理」のセキュリティ設定で何でも変更できるように見えますが、証明書の実際の ACL とは何の関係もありません。問題を次の手動の手順に減らすことができました。
- User1 は、証明書を「Local Computer/My」にインポートします (ルートに正しい CA が存在します)。
- ユーザー 1 は MMC で証明書を選択し、[秘密キーの管理] をクリックして、フル コントロール アクセス許可を持つ「ユーザー」(グループ) と「ユーザー 2」(ユーザー) を追加します。
- User1 ログアウト
- User2 ログイン
- User2 が MMC を開き、[秘密キーの管理] をクリックします --> エラー、MMC コンソールに「復号化のための証明書と秘密キーが見つかりません」と表示されます。
User2 は秘密鍵にアクセスできる必要がありますが。したがって、MMC の User1 (User1 と User2 の両方が Administrators グループに属しています) の設定はまったく意味がなく、秘密鍵にアクセスする .NET API によって無視されるように思えますか?
これがなぜそうなのか、また、2 人のユーザーが証明書の秘密鍵を読み取れるようにしたいことを Windows に納得させるにはどうすればよいか、誰にもわかりませんか?
助けてくれてありがとうマイケル