次の方法で共有


S2S VPN Gateway 証明書認証の接続を構成する - プレビュー

この記事では、Azure portal を使用して、オンプレミス ネットワークと仮想ネットワークの間のサイト間 (S2S) 証明書認証 VPN ゲートウェイ接続を作成します。 この構成の手順では、マネージド ID、Azure Key Vault、証明書を使用します。 共有キーを使用したサイト間 VPN 接続を作成する必要がある場合は、S2S VPN 接続の作成に関するページを参照してください。

クロスプレミスのサイト間 VPN Gateway 接続の図。

前提条件

Note

Basic SKU VPN ゲートウェイでは、サイト間証明書認証はサポートされていません。

  • 既に仮想ネットワークと VPN ゲートウェイは作成しています。 もしない場合は、VPN ゲートウェイを作成する手順に従って作成し、その後このページに戻ってサイト間証明書認証接続を構成してください。

  • 互換性のある VPN デバイスがあり、それを構成できる人員がいることを確認します。 互換性のある VPN デバイスとデバイスの構成について詳しくは、VPN デバイスの概要に関する記事をご覧ください。

  • VPN デバイスの外部接続用パブリック IPv4 アドレスがあることを確認します。

  • オンプレミス ネットワーク構成に含まれている IP アドレス範囲になじみがない場合は、それらの詳細を提供できる担当者と連携する必要があります。 この構成を作成する場合は、Azure がオンプレミスの場所にルーティングする IP アドレスの範囲のプレフィックスを指定する必要があります。 オンプレミス ネットワークのサブネットと接続先の仮想ネットワーク サブネットが重複しないようにしなければなりません。

マネージド ID を作成する

この構成には、マネージド ID が必要です。 マネージド ID の詳細については、「Azure リソースのマネージド ID とは」を参照してください。 ユーザー割り当てマネージド ID を既に作成している場合は、この演習でその ID を使用できます。 ない場合は、以下の手順に従い、マネージド ID を作成します。

  1. Azure portal で、[マネージド ID] を検索して選択します。
  2. [作成] を選択します
  3. 必要な情報を入力します。 名前を作成するときは、直感的な名前を使用します。 たとえば、site-to-site-managedvpngwy-managed のような名前です。 キー コンテナーの構成手順でこの名前が必要になります。 リソース グループは、VPN ゲートウェイに使用するリソース グループと同じである必要はありません。
  4. [確認と作成] を選択します。
  5. 値が検証されます。 検証が完了したら、[作成] を選択します。

VPN Gateway で Key Vault とマネージド ID を有効にする

このセクションでは、ゲートウェイで Azure Key Vault と、前の手順で作成したマネージド ID を有効にします。 Azure Key Vault の詳細については、Key Vault の概要ページを参照してください。

  1. ポータルで仮想ネットワーク ゲートウェイ (VPN ゲートウェイ) に移動します。
  2. [設定]>[構成] の順に移動します。 [構成] ページで、次の認証設定を指定します。
    • Key Vault のアクセスを有効にする: 有効。
    • マネージド ID: 前の手順で作成したマネージド ID を選択します。
  3. 設定を保存します。

ローカル ネットワーク ゲートウェイの作成

ローカル ネットワーク ゲートウェイは、ルーティング目的でオンプレミスの場所 (サイト) を表す、特定のオブジェクトです。 サイトに Azure が参照できる名前を付けてから、接続を作成するオンプレミス VPN デバイスの IP アドレスを指定します。 また、VPN ゲートウェイ経由で VPN デバイスにルーティングされる IP アドレスのプレフィックスも指定します。 指定するアドレスのプレフィックスは、オンプレミス ネットワークのプレフィックスです。 オンプレミスのネットワークが変更された場合、または VPN デバイスのパブリック IP アドレスを変更する必要がある場合、これらの値を後で簡単に更新できます。

Note

ローカル ネットワーク ゲートウェイ オブジェクトは、オンプレミスの場所ではなく、Azure にデプロイされます。

次の値を使って、ローカル ネットワーク ゲートウェイを作成します。

  • [名前]: Site1
  • [リソース グループ]: TestRG1
  • [場所] :米国東部

構成に関する考慮事項:

  • VPN Gateway では、FQDN ごとに 1 つの IPv4 アドレスのみがサポートされます。 ドメイン名が複数の IP アドレスに解決される場合、VPN Gateway では DNS サーバーから最初に返された IP アドレスが使用されます。 不確実性を解消するために、FQDN を常に単一の IPv4 アドレスに解決することをお勧めします。 IPv6 はサポートされていません。
  • VPN Gateway には、5 分おきに更新される DNS キャッシュがあります。 ゲートウェイによって FQDN の解決が試行されるのは、切断されたトンネルの場合のみです。 ゲートウェイをリセットすると、FQDN 解決もトリガーされます。
  • VPN Gateway では、異なる FQDN を持つ異なるローカル ネットワーク ゲートウェイへの複数の接続がサポートされていますが、すべての FQDN は異なる IP アドレスに解決される必要があります。
  1. ポータル内で、[ローカル ネットワーク ゲートウェイ]に移動して [ローカル ネットワーク ゲートウェイの作成] ページを開きます。

  2. [基本] タブで、ローカル ネットワーク ゲートウェイの値を入力します。

    IP アドレスを使用したローカル ネットワーク ゲートウェイの作成を示すスクリーンショット。

    • サブスクリプション:正しいサブスクリプションが表示されていることを確認します。
    • [リソース グループ]: 使用するリソース グループを選択します。 新しいリソース グループを作成することも、作成済みのリソース グループを選択することもできます。
    • 地域: このオブジェクトのリージョンを選択します。 仮想ネットワークが存在する場所と同じ場所を選択できますが、必ずしもそうする必要はありません。
    • [名前]: ローカル ネットワーク ゲートウェイ オブジェクトの名前を指定します。
    • [エンドポイント]: オンプレミス VPN デバイスのエンドポイントの種類として、[IP アドレス]または [FQDN] (完全修飾ドメイン名) を選びます。
      • [IP アドレス]: インターネット サービス プロバイダー (ISP) から割り当てられた VPN デバイスの静的パブリック IP アドレスがある場合は、IP アドレス オプションを選択します。 例に示されているように IP アドレスを入力します。 このアドレスは、Azure VPN Gateway の接続先となる VPN デバイスのパブリック IP アドレスです。 この時点で IP アドレスを持っていない場合は、例に示されている値を使用できます。 後で、この手順に戻り、プレースホルダーの IP アドレスを VPN デバイスのパブリック IP アドレスに置き換える必要があります。 そうしなければ、Azure は接続できません。
      • [FQDN]: 一定期間が過ぎると変わる可能性がある動的パブリック IP アドレス (多くの場合、ISP によって決定されます) の場合は、動的 DNS サービスで DNS 定数名を使用して、VPN デバイスの現在のパブリック IP アドレスを指定することができます。 Azure VPN ゲートウェイは、FQDN を解決して接続先のパブリック IP アドレスを決定します。
    • [アドレス空間] は、このローカル ネットワークが表すネットワークのアドレス範囲を指します。 複数のアドレス領域の範囲を追加することができます。 ここで指定した範囲が、接続先となる他のネットワークの範囲と重複しないようにしてください。 指定したアドレス範囲が、Azure によってオンプレミスの VPN デバイスの IP アドレスにルーティングされます。 "オンプレミスのサイトに接続する場合、例に示されている値を使用せず、ここで独自の値を使用します"。
  3. [詳細設定] タブでは、必要に応じて BGP 設定を構成できます。

  4. 値の指定が完了したら、ページの下部にある [確認と作成] を選択して、ページを検証します。

  5. [作成] を選択して、ローカル ネットワーク ゲートウェイ オブジェクトを作成します。

証明書

サイト間証明書認証アーキテクチャは、受信証明書と送信証明書の両方に依存します。

Note

受信証明書と送信証明書は、同じルート証明書から生成する必要はありません。

送信証明書

  • 送信証明書は、Azure からオンプレミス サイトへの接続を検証するために使用されます。
  • この証明書は Azure Key Vault に格納されます。 サイト間接続を構成するときに、送信証明書のパス識別子を指定します。
  • 任意の認証局を使用して証明書を作成することも、自己署名ルート証明書を作成することもできます。

送信証明書を生成する場合、証明書は次のガイドラインに従う必要があります。

  • 最小キー長は 2048 ビット。
  • 秘密キーが必要。
  • サーバーとクライアントの認証が必要。
  • サブジェクト名が必要。

受信証明書

  • 受信証明書は、オンプレミスの場所から Azure に接続するときに使用されます。
  • サブジェクト名の値は、サイト間接続を構成するときに使用されます。
  • 証明書チェーンの公開キーは、サイト間接続を構成するときに指定します。

証明書の生成

ローカルのコンピューターで PowerShell を使用して証明書を生成します。 次の手順では、自己署名ルート証明書とリーフ証明書 (受信および送信) を作成する方法を説明します。 次の例を使用する場合は、自己署名ルート CA とリーフ証明書を作成している間に PowerShell ウィンドウを閉じないでください。

自己署名ルート証明書の作成

New-SelfSignedCertificate コマンドレットを使用して、自己署名ルート証明書を作成します。 詳細については、「New-SelfSignedCertificate」を参照してください。

  1. Windows 10 以降または Windows Server 2016 を実行しているコンピューターから、昇格された特権を使用して Windows PowerShell コンソールを開きます。

  2. 自己署名ルート証明書を作成します。 次の例では、"VPNRootCA01" という名前の自己署名ルート証明書が作成され、"Certificates-Current User\Personal\Certificates" に自動的にインストールされます。 証明書が作成されたら、certmgr.msc または [ユーザー証明書の管理] を開くと証明書を表示できます。

    この例を使用する前に、必要な変更を加えます。 'NotAfter' パラメーターは省略可能です。 既定では、このパラメーターを指定しない場合、証明書の有効期限は 1 年です。

    $params = @{
        Type = 'Custom'
        Subject = 'CN=VPNRootCA01'
        KeySpec = 'Signature'
        KeyExportPolicy = 'Exportable'
        KeyUsage = 'CertSign'
        KeyUsageProperty = 'Sign'
        KeyLength = 2048
        HashAlgorithm = 'sha256'
        NotAfter = (Get-Date).AddMonths(120)
        CertStoreLocation = 'Cert:\CurrentUser\My'
        TextExtension = @('2.5.29.19={critical}{text}ca=1&pathlength=4')
    }
    $cert = New-SelfSignedCertificate @params
    
  3. リーフ証明書を生成するには、PowerShell コンソールを開いたままにして、次の手順に進みます。

リーフ証明書の生成

以下の例では、New-SelfSignedCertificate コマンドレットを使用して、送信および受信リーフ証明書を生成しています。 証明書は、コンピューターの "Certificates - Current User\Personal\Certificates" に自動的にインストールされます。

送信証明書


   $params = @{
       Type = 'Custom'
       Subject = 'CN=Outbound-certificate'
       KeySpec = 'Signature'
       KeyExportPolicy = 'Exportable'
       KeyLength = 2048
       HashAlgorithm = 'sha256'
       NotAfter = (Get-Date).AddMonths(120)
       CertStoreLocation = 'Cert:\CurrentUser\My'
       Signer = $cert
       TextExtension = @(
        '2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
   }
   New-SelfSignedCertificate @params

受信証明書


   $params = @{
       Type = 'Custom'
       Subject = 'CN=Inbound-certificate'
       KeySpec = 'Signature'
       KeyExportPolicy = 'Exportable'
       KeyLength = 2048
       HashAlgorithm = 'sha256'
       NotAfter = (Get-Date).AddMonths(120)
       CertStoreLocation = 'Cert:\CurrentUser\My'
       Signer = $cert
       TextExtension = @(
        '2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
   }
   New-SelfSignedCertificate @params

送信証明書 - 秘密キー データのエクスポート

送信証明書情報 (秘密キーを含む) を .pfx または .pem ファイルにエクスポートします。 この証明書情報は、後の手順で Azure Key Vault に安全にアップロードします。 Windows を使用して .pfx にエクスポートするには、次の手順に従います。

  1. 証明書の .cer ファイルを取得するには、[ユーザー証明書の管理] を開きます。

  2. 送信証明書を探して (通常は Certificates - Current User\Personal\Certificates にあります)、右クリックします。 [すべてのタスク] ->[エクスポート] を選びます。 証明書のエクスポート ウィザードが開きます。

  3. ウィザードで [次へ] を選択します。

  4. [はい、秘密キーをエクスポートします] を選択し、 [次へ] を選択します。

  5. [エクスポート ファイルの形式] ページで、[Personal Information Exchange - PKCS #12 (.PFX)] をクリックします。 次の項目を選択してください。

    • 証明のパスにある証明書を可能であればすべて含む
    • すべての拡張プロパティをエクスポートする
    • 証明書のプライバシーを有効にする
  6. [次へ] を選択します。 [セキュリティ] ページで、[パスワード] と暗号化方法を選択します。 次に、 [次へ] を選択します。

  7. ファイル名を指定し、エクスポートする場所を参照します。

  8. [完了] を選択して、証明書をエクスポートします。

  9. "エクスポートは成功しました" という確認メッセージが表示されます。

受信証明書 - 公開キー データのエクスポート

受信証明書の公開キー データをエクスポートします。 ファイル内の情報は、サイト間接続を構成するときに、受信証明書チェーン フィールドに使用されます。 エクスポートするファイルは .cer の形式でなければなりません。 証明書の値は暗号化しないでください。

  1. 証明書の .cer ファイルを取得するには、[ユーザー証明書の管理] を開きます。
  2. 証明書を探して (通常は Certificates - Current User\Personal\Certificates にあります)、右クリックします。 [すべてのタスク] ->[エクスポート] を選びます。 証明書のエクスポート ウィザードが開きます。
  3. ウィザードで [次へ] を選択します。
  4. [いいえ、秘密キーをエクスポートしません] を選択します。 [次へ] を選択します。
  5. [Base 64 encoded X.509 (.CER)] を選択して、[次へ] を選択します。
  6. ファイル名を指定し、エクスポートする場所を参照します。
  7. [完了] を選択して、証明書をエクスポートします。
  8. "エクスポートは成功しました" という確認メッセージが表示されます。
  9. この .cer ファイルは、後で接続を構成するときに使用されます。

ルート証明書 - 公開キー データのエクスポート

ルート証明書の公開キー データをエクスポートします。 エクスポートするファイルは .cer の形式でなければなりません。 証明書の値は暗号化しないでください。

  1. 証明書の .cer ファイルを取得するには、[ユーザー証明書の管理] を開きます。
  2. 証明書を探して (通常は Certificates - Current User\Personal\Certificates にあります)、右クリックします。 [すべてのタスク] ->[エクスポート] を選びます。 証明書のエクスポート ウィザードが開きます。
  3. ウィザードで [次へ] を選択します。
  4. [いいえ、秘密キーをエクスポートしません] を選択します。 [次へ] を選択します。
  5. [Base 64 encoded X.509 (.CER)] を選択して、[次へ] を選択します。
  6. ファイル名を指定し、エクスポートする場所を参照します。
  7. [完了] を選択して、証明書をエクスポートします。
  8. "エクスポートは成功しました" という確認メッセージが表示されます。
  9. この .cer ファイルは、後で接続を構成するときに使用されます。

Key Vault を作成します

この構成には、Azure Key Vault が必要です。 次の手順では、キー コンテナーを作成します。 後で証明書とマネージド ID をキー コンテナーに追加します。 より包括的な手順については、Azure portal を使用したキー コンテナーの作成に関するクイックスタートを参照してください。

  1. Azure portal で、Key Vaults を検索します。 [キー コンテナー] ページで、[+ 作成] を選択します。
  2. [キー コンテナーの作成] ページで、必要な情報を入力します。 リソース グループは、VPN ゲートウェイに使用するリソース グループと同じである必要はありません。
  3. [アクセス構成] タブの [アクセス許可モデル] で [コンテナー アクセス ポリシー] を選択します。
  4. 他のフィールドには入力しないでください。
  5. [レビュー + 作成] を選択してキー コンテナーを作成します。

送信証明書ファイルをキー コンテナーに追加する

次の手順では、送信証明書情報を Azure Key Vault にアップロードします。

  1. キー コンテナーに移動します。 左側のペインで、[証明書] ページを開きます。
  2. [証明書] ページで、[+ 生成/インポート] を選択します
  3. [証明書の作成方法] で、ドロップダウンから [インポート] を選択します。
  4. 直感的な証明書名を入力します。 これは、証明書 CN または証明書ファイル名である必要はありません。
  5. 送信証明書ファイルをアップロードします。 証明書ファイルは次のいずれかの形式で指定する必要があります。
    • .pfx
    • .pfm
  6. 証明書情報を保護するために使用するパスワードを入力します。
  7. [作成] を選択して証明書ファイルをアップロードします。

マネージド ID をキー コンテナーに追加する

  1. キー コンテナーに移動します。 左側のペインで [アクセス ポリシー] ページを開きます。
  2. [+作成] を選択します。
  3. [アクセス ポリシーの作成] ページの [シークレット管理オプション][証明書管理操作][すべて選択] を選択します。
  4. [次へ] を選択して、[プリンシパル]* ページに進みます。
  5. [プリンシパル] ページで、先ほど作成したマネージド ID を検索して選択します。
  6. [次へ] を選択して、[確認 + 作成] ページに移動します。 [作成] を選択します

VPN デバイスの構成

オンプレミス ネットワークとのサイト間接続には VPN デバイスが必要です。 この手順では、VPN デバイスを構成します。 VPN デバイスを構成するときは、次の値が必要です。

  • 証明書: 認証に使用する証明書データが必要です。 この証明書は、VPN 接続の作成時に受信証明書としても使用されます。
  • 仮想ネットワーク ゲートウェイのパブリック IP アドレスの値: Azure portal を使用して VPN ゲートウェイ VM インスタンスのパブリック IP アドレスを見つけるには、仮想ネットワーク ゲートウェイに移動し、[設定]>[プロパティ] を確認します。 アクティブ/アクティブ モード ゲートウェイ (推奨) がある場合は、必ず各 VM インスタンスへのトンネルを設定してください。 両方のトンネルが同じ接続の一部です。 アクティブ/アクティブ モードの VPN ゲートウェイには、2 つのパブリック IP アドレス (ゲートウェイ VM インスタンスごとに 1 つずつ) があります。

ご利用の VPN デバイスによっては、VPN デバイス構成スクリプトをダウンロードできる場合があります。 詳細については、VPN デバイス構成スクリプトのダウンロードに関するページを参照してください。

構成の詳細については、次のリンクを参照してください。

サイト間接続を作成する

このセクションでは、仮想ネットワーク ゲートウェイとオンプレミス VPN デバイスとの間にサイト間 VPN 接続を作成します。

構成値を収集する

次に進む前に、必要な構成値に関する次の情報を収集します。

  • 送信証明書パス: これは送信証明書へのパスです。 送信証明書は、Azure からオンプレミスの場所に接続するときに使用される証明書です。 この情報は、Azure Key Vault にアップロードしたのと同じ証明書の情報です。

    1. [Key Vaults] に移動し、ユーザーのキー コンテナーを選択します。 左側のペインで、[オブジェクト] を展開し、[証明書] を選択します。
    2. 証明書を見つけてクリックし、[証明書] ページを開きます。
    3. 証明書バージョンの行をクリックします。
    4. [キー識別子] の横にあるパスをコピーします。 パスは証明書に固有です。

    例: https://s2s-vault1.vault.azure.net/certificates/site-to-site/<certificate-value>

  • 受信証明書のサブジェクト名: これは受信証明書の CN です。 この値を見つけるには:

    1. Windows コンピューターで証明書を生成した場合は、[証明書管理] でこの値を見つけることができます。
    2. [Details (詳細)] タブに移動します。スクロールし、[サブジェクト] をクリックします。 下のペインに値が表示されます。
    3. この値に CN= を含めないでください。
  • 受信証明書チェーン: この証明書情報は、受信する受信証明書の検証にのみ使用され、秘密キーは含まれません。 ポータルの受信証明書セクションには、常に少なくとも 2 つの証明書が必要です。

    証明書チェーンに中間 CA がある場合は、最初にルート証明書を最初の中間証明書として追加し、次に受信中間証明書を追加します。

    次の手順を使用して、受信証明書フィールドに必要な形式で証明書データを抽出します。

    1. 証明書データを抽出するには、前の手順で受信証明書を Base 64 でエンコードされた X.509 (.CER) ファイルとしてエクスポートしていることをご確認ください。 証明書をテキスト エディターで開くことができるように、この形式でエクスポートする必要があります。

    2. .cer 証明書ファイルを見つけ、テキスト エディターで開きます。 証明書データをコピーするときは、必ずテキストを 1 つの連続した行としてコピーしてください。

    3. 接続を作成するときに、-----BEGIN CERTIFICATE----------END CERTIFICATE----- の間に一覧表示されているデータを 1 つの連続する行として、[受信証明書チェーン] フィールドにコピーします。

      例:

      メモ帳で中間証明書情報を表示しているスクリーンショット。

接続を作成する

  1. 作成した仮想ネットワーク ゲートウェイに移動し、[接続] を選択します。

  2. [接続] ページの上部で、[+ 追加] を選択して [接続の作成] ページを開きます。

  3. [接続の作成] ページの [基本] タブで、接続の値を構成します。

    • [プロジェクトの詳細] では、サブスクリプションと、リソースが配置されているリソース グループを選択します。

    • [インスタンスの詳細] で、次の設定を構成します。

      • [接続の種類] : [サイト対サイト (IPsec)] を選択します。
      • [名前]: 接続に名前を付けます。 例: VNet-to-Site1。
      • 地域: この接続のリージョンを選択します。
  4. [Settings](設定) タブを選択します。

    [設定] ページを示すスクリーンショット。

    次の値を構成します。

    • [仮想ネットワーク ゲートウェイ]: ドロップダウン リストから仮想ネットワーク ゲートウェイを選びます。
    • [ローカル ネットワーク ゲートウェイ]: ドロップダウン リストからローカル ネットワーク ゲートウェイを選びます。
    • 認証方法: [キー コンテナー証明書] を選択します。
    • 送信証明書パス: Key Vault に位置する送信証明書へのパス。 この情報を取得する方法は、このセクションの先頭にあります。
    • 受信証明書のサブジェクト名: 受信証明書の CN。 この情報を取得する方法は、このセクションの先頭にあります。
    • 受信証明書チェーン: .cer ファイルからコピーした証明書データ。 受信証明書の証明書情報をコピーして貼り付けます。 この情報を取得する方法は、このセクションの先頭にあります。
    • [IKE プロトコル]: [IKEv2] を選びます。
    • [Azure プライベート IP アドレスを使用する]: オンにしないでください。
    • BGP を有効にする: BGP を使用する場合にのみ有効にします。
    • [IPsec/IKE ポリシー]: [既定] を選びます。
    • [ポリシー ベースのトラフィック セレクターを使用する]: [無効] を選びます。
    • [DPD タイムアウト (秒)]: [45] を選びます。
    • [接続モード]: [既定] を選択します。 この設定は、接続を開始できるゲートウェイを指定するために使われます。 詳細については、VPN Gateway 設定に関するページの「接続モード」 を参照してください。
    • [NAT 規則の関連付け] では、[イングレス][エグレス] の両方を 0 が選択されたままにします。
  5. [確認 + 作成] を選んで接続設定を確認し、[作成] を選んで接続を作成します。

  6. デプロイが完了したら、仮想ネットワーク ゲートウェイの [接続] ページで接続を表示できます。 状態は、[不明] から [接続中] に変わり、その後 [成功] に変わります。

次のステップ

接続が完成したら、VNet に仮想マシンを追加することができます。 詳細については、Virtual Machines に関するページを参照してください。 ネットワークと仮想マシンの詳細については、「Azure と Linux の VM ネットワークの概要」を参照してください。

P2S のトラブルシューティング情報については、Azure ポイント対サイト接続のトラブルシューティングに関するページを参照してください。