質問

シナリオ:

  • クライアントがLAN上のWebService Aを呼び出します。 WebService Aは、「ネットワークサービス」というIDのアプリプールで実行されています。
  • WebService Aはいくつかの作業を行い、WebService Bを呼び出す準備をします。
  • WebService Bには、クライアント証明書(* .cer)とSSLが必要です。
  • WebService Aは専用のWindows 2003サーバー上にあります。
  • すべてが正常にDev環境で動作します(ただし、管理者権限を持つ開発者は常にローカルにログオンします(当然です!)。
  • 証明書はディスクの C:\ MyCertificates \
  • に保存されます
  • 次のスニペットを使用して、開発時に証明書が実行時に正常に適用されています: myWebService.ClientCertificates.Add(new X509Certificate.CreateFromCertFile(certPath));

問題: WebService AはWebService Bを呼び出しており、返される例外は次のとおりです:

  

リクエストはHTTPステータスで失敗しました   403:禁止されています

これは、証明書がWebService Bへのリクエストで送信されなかったことを意味します。

私は、この証明書をブラウザにインストールすることは解決策ではないと仮定しています。通常、ブラウザの設定はユーザーごとであり、Webサービスが実行されている資格情報を持つユーザーに証明書を提供する必要があります。 (例:ネットワークサービス、システム、またはIIS AppPool設定にあるもの)。

質問:指定したディレクトリの場所にある証明書へのアクセスまたは関連付けをネットワークサービスまたは他の非ユーザーアカウントに許可するにはどうすればよいですか?

役に立ちましたか?

解決

このMicrosoftナレッジベースの記事は役に立つかもしれません:

  

ASP.NET Webアプリケーションでの認証にクライアント証明書を使用してWebサービスを呼び出す方法( MS KB901183)

Webサービス「A」は、記事で説明されているように、Webサービスを呼び出すASP.NETアプリケーションになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top