相互 SSL 認証を有効にするには、.NET エージェントでローカルコンピュータの個人証明書ストアからクライアント証明書と秘密キーをロードします。インストゥルメントされたアプリケーション ID で、クライアント証明書の秘密キーにアクセスできる必要があります。

証明書ストアへの秘密キーのインポート

秘密キーを証明書ストアにインポートするには、次の手順を実行します。

  1. Microsoft 管理コンソール(MMC)から、[Certificates (Local computer) > Personal > Certificates] に移動して展開します。
  2. [Certificates] を右クリックします。
  3. [All Tasks > Import] を展開します。
  4. [Import] パネルから、[Filter] を [All] または .pfx ファイルに変更します。
  5. * .pfx ファイルを選択します。
  6. パスワードを入力し、インポート手順を完了します。 

デフォルトでは、IIS アプリケーション(フルフレームワークおよび処理中/処理外にホストされる .NET Core)の場合、IIS_IUSRS グループに秘密キーへの読み取りアクセス権が必要です。カスタムサービスアカウントを使用してアプリケーションプールで実行されるスタンドアロン アプリケーション、自己ホスト型の .NET Core アプリケーション、および IIS アプリケーションの場合、適切なアカウントとグループには秘密キーへの読み取りアクセス権があります。

秘密キーへの読み取りアクセス権を追加するには、次の手順を実行します。

  1. Microsoft 管理コンソール(MMC)から、[Certificates (Local computer) > Personal > Certificates] に移動して展開します。
  2. [Certificates] を右クリックします。
  3. [All Tasks > Manage Private Keys] を展開してポップアップを表示します。
  4. 必要に応じてアプリケーション ID またはユーザグループを追加し、秘密キーへの読み取りアクセス権を追加します。

証明書属性の設定

証明書ストアから証明書を使用するには、certificate 属性として証明書のサムプリントを追加する必要があります。

証明書のサムプリントを取得するには、次の手順を実行します。

    1. Microsoft 管理コンソール(MMC)から、[Certificates (Local computer) > Personal > Certificates] に移動して展開します。
    2. 証明書をダブルクリックします。
    3. [Details] タブで、サムプリントを特定します。 
    4. certificate 属性としてサムプリントを追加します。

      config.xml ファイルに以下を追加します。

      <controller host="controller.host.name" port="443" ssl="true" enable_tls12="true">
         <application name="application.name"/>
         <account name="account.name" password="account.password"/>
         <ssl-mutual-auth enabled="true" certificate="certificate.thumbprint"/>
       </controller>
      CODE

      次のファイルに追加します。

      {
       "controller": {
         "host": "controller.host.name",
         "port": 443,
         "ssl": true,
         "enable_tls12" : true,
         "account": "account.name",
         "password": "account.password",
         "ssl_mutual_auth":{
             "enabled": true,
             "certificate" : "certificate.thumbprint"
         }
       }
      CODE

      次のファイルに追加します。

      {
       "controller": {
         "host": "controller.host.name",
         "port": 443,
         "ssl": true,
         "enable_tls12" : true,
         "account": "account.name",
         "password": "account.password",
         "ssl_mutual_auth":{
             "enabled": true,
             "certificate" : "certificate.thumbprint"
         }
       }
      CODE

      Azure App Services では、Azure ポータルを使用してクライアント証明書を Azure にインポートできます。

      Azure portal
      インポートされた証明書をクライアント認証に使用できるようにするには、クライアント証明書のサムプリントを WEBSITE_LOAD_CERTIFICATES 環境変数に設定する必要があります。