次の方法で共有


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

Microsoft Azure Cloud Services (延長サポート) との通信は、ハイパーテキスト転送プロトコル セキュア (HTTPS) プロトコルを使用して行われます。 この記事では、Cloud Services (延長サポート) の HTTPS 通信を有効にする方法について説明します。

前提条件

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

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

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

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

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

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

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

Note

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

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

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

コードの変更

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

  1. 手順 6 で証明書をキー コンテナーにアップロードする手順に従います。

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

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

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

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

  4. service definition (.csdef) ファイルで次の要素を追加します。

    親 XPath 追加する要素 使用する属性
    /ServiceDefinition/WebRole/Sites/Site/Bindings Binding nameendpointName
    /ServiceDefinition/WebRole/Endpoints InputEndpoint nameprotocolportcertificate
    /ServiceDefinition/WebRole Certificates/Certificate namestoreLocationstoreNamepermissionLevel

    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 の入力エンドポイントがバインドされます。 Certificate1証明書は、Myの名前を持つストアに使用され、アクセス許可レベルが制限された場所または昇格されたアクセス許可レベルに対してLocalMachineの場所が使用されます。 InputEndpoint要素とCertificate要素内の証明書名は相互に一致します。 また、前の手順のサービス構成 (.cscfg) ファイルで使用された証明書名と一致します。

構成の変更

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

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

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

    • プロジェクトをパッケージ化してください。

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

      Note

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

    • アップロードされた各ファイルの Shared Access Signature (SAS) URL を生成します。

  2. Azure ポータルでクラウド サービスの Overview ページに戻り、Update を選択します。

  3. Update クラウド サービス ページで、Basics タブで次の変更を行います。

    1. Package/構成/サービス定義の場所フィールドで、[BLOB からを選択します。

    2. パッケージのアップロード (.cspkg、.zip) フィールドで、次の手順に従います。

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

    4. サービス定義 (.csdef) フィールド (および ServiceDefinition.csdef ファイル) をアップロードする場合は、サブ手順をもう一度繰り返します。

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

  5. Key コンテナー フィールドで、証明書をアップロードしたキー コンテナーを選択します (Code の変更セクションで前述)。 選択したキー コンテナーで証明書が見つかると、一覧表示された証明書に Status Found が表示されます。

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

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

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

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