次の方法で共有


Azure Cloud Services で HTTPS 通信を有効にする (延長サポート)

Microsoft Azure Cloud Servicesとの通信 (延長サポート) は、Hypertext Transfer Protocol Secure (HTTPS) プロトコルを使用して行われます。 この記事では、Cloud Services (延長サポート) に対して HTTPS 通信を有効にする方法について説明します。

前提条件

プロジェクトの配置の一般的な手順

Cloud Services (延長サポート) プロジェクトを Azure にデプロイする一般的な手順は次のとおりです。

  1. 証明書を準備します。

  2. プロジェクトを構成します。

  3. プロジェクト ファイルをクラウド サービスのサービス定義 (.csdef)、サービス構成 (.cscfg)、およびサービス パッケージ (.cspkg) ファイルにパッケージ化します。

  4. 必要に応じて、Cloud Services (延長サポート) リソースの構成を変更します。 たとえば、次のいずれかの変更を行うことができます。

    1. パッケージ URL を更新します。
    2. URL 設定を構成します。
    3. オペレーティング システム シークレットの設定を更新します。
  5. 新しいプロジェクトを Azure にデプロイして更新します。

注:

プロジェクトは、次のツールを使用するなど、いくつかの異なる方法でデプロイできます。

デプロイ方法に関係なく、一般的なデプロイ手順は同じです。

これらの手順の最初の 2 つはすべてのデプロイ方法に必要です。 これらの手順については、「コードの 変更 」セクションで説明します。 残りの手順も重要ですが、必ずしも手動によるユーザー介入が必要とは限りません。 たとえば、手順は Visual Studio などのツールによって自動的に実行される場合があります。 これらの手順の最後の 3 つは、「構成の 変更」 セクションで説明されています。

コードの変更

コードを変更して証明書を準備し、プロジェクトを構成するには、次の手順を実行します。

  1. 手順 6. の手順に従って 、証明書をキー コンテナーにアップロード します。

  2. 証明書の拇印 (40 桁の 16 進文字列) を書き留めます。

  3. プロジェクトの サービス構成 (.cscfg) ファイル で、証明書を使用するロールに証明書の拇印を追加します。 たとえば、証明書を SSL 証明書として使用して WebRole と通信する場合は、 の次のスニペット WebRole1 のような XML コードをルート ServiceConfiguration 要素の最初の子として追加できます。

    <Role name="WebRole1">
      <Instances count="1" />
      <Certificates>
        <Certificate
          name="Certificate1"
          thumbprint="0123456789ABCDEF0123456789ABCDEF01234567"
          thumbprintAlgorithm="sha1"
        />
      </Certificates>
    </Role>
    

    証明書の名前はカスタマイズできますが、サービス定義 (.csdef) ファイルで使用される証明書名と一致する必要があります。

  4. サービス定義 (.csdef) ファイルに、次の要素を追加します。

    親 XPath 追加する要素 使用する属性
    /ServiceDefinition/WebRole/Sites/Site/Bindings Binding nameendpointName
    /ServiceDefinition/WebRole/Endpoints InputEndpoint 名前プロトコルポート証明書
    /ServiceDefinition/WebRole Certificates/Certificate name, storeLocation, storeName, permissionLevel

    要素は Certificates 、終了 Endpoints タグの直後に追加する必要があります。 属性は含まれません。 子 Certificate 要素のみが含まれています。

    たとえば、サービス定義ファイルは次の XML コードのようになります。

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="CSESOneWebRoleHTTPS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
      <WebRole name="WebRole1" vmsize="Standard_D1_v2">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
              <Binding name="HttpsIn" endpointName="HttpsIn" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
          <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="Certificate1" />
        </Endpoints>
        <Certificates>
          <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" />
        </Certificates>
      </WebRole>
    </ServiceDefinition>
    

    この例では、サービス定義ファイルを変更して、ポート 443 の HTTPS プロトコルの の入力エンドポイント HttpsIn をバインドします。 制限付きまたは昇格されたアクセス許可レベルに対して のMy名前と の場所LocalMachineを持つストアに証明書を使用Certificate1します。 要素と Certificate 要素のInputEndpoint証明書名は相互に一致します。 また、前の手順のサービス構成 (.cscfg) ファイルで使用された証明書名と一致します。

構成の変更

クラウド サービスの構成を変更する手順は、クラウド サービスのデプロイ方法によって異なります。 これらの手順は、次のタブに表示されます。 各タブは、異なるデプロイ方法を表します。

続行する前に、Azure portalを使用して Azure Cloud Services (延長サポート) をデプロイする方法に関するページを参照してください。 次に、次の手順に従って、Azure portalを使用して正しい構成を変更します。

  1. 「従来のクラウド サービスからクラウド サービス拡張サポートと ARM テンプレートを使用した手動移行」というタイトルのブログ エントリに移動し、手順 7 から 9 に従います。 これらの手順では、次の手順を実行する方法について説明します。

    • プロジェクトをパッケージ化します。

    • 生成されたサービス パッケージ (<project-name.cspkg>) とクラウド サービス構成 (ServiceConfiguration.Cloud.cscfg) ファイルをクラウド サービスのストレージ アカウント コンテナーにアップロードします。

      注:

      また、他の 2 つのファイルについて説明されているのと同じプロセスを使用して、サービス定義 (ServiceDefinition.csdef) ファイルをアップロードする必要もあります。

    • アップロードされた各ファイルの共有アクセス署名 (SAS) URL を生成します。

  2. Azure portalで、クラウド サービスの [概要] ページに戻り、[更新] を選択します。

  3. [ クラウド サービスの更新 ] ページで、[ 基本 ] タブで次の変更を行います。

    1. [ Package/configuration/service definition location]\(パッケージ/構成/サービス定義の場所\ ) フィールド で、[BLOB から] を選択します。

    2. [ パッケージのアップロード (.cspkg、.zip)] フィールドで、次の手順を実行します。

      1. [参照] リンクを選択 します
      2. ファイルをアップロードしたストレージ アカウントとコンテナーを選択します。
      3. コンテナー ページで、対応するファイル (この場合は <project-name.cspkg>) を選択し、[選択] ボタンを選択します。
    3. [ 構成のアップロード (.cscfg)] フィールド ( および ServiceConfiguration.Cloud.cscfg ファイル) で、前の手順で説明したサブプロファイルを繰り返します。

    4. [ サービス定義のアップロード (.csdef)] フィールド ( および ServiceDefinition.csdef ファイル) で、サブプロファイルをもう一度繰り返します。

  4. [ 構成 ] タブを選択します。

  5. [ キー コンテナー ] フィールドで、証明書をアップロードしたキー コンテナーを選択します (前の「コードの 変更 」セクションで)。 選択したキー コンテナーで証明書が見つかったら、一覧表示された証明書に [状態]が [見つかりました] と表示されます。

  6. 新しく構成されたプロジェクトをデプロイするには、[ 更新 ] ボタンを選択します。

構成を変更すると、顧客は HTTPS プロトコルを使用してクラウド サービス Web サイトと通信できるようになります。 証明書が自己署名の場合、証明書がセキュリティで保護されていないという警告がブラウザーから報告される場合がありますが、ブラウザーは接続をブロックしません。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。