
SSL(Secure Socket Layer)暗号化プロトコルは、インターネット上のデータを保護する最も一般的な方法です。 この例では、WebロールのHTTPSエンドポイントを設定し、SSL証明書をダウンロードしてアプリケーションを保護する方法を示します。
このプロセスには、次の手順が含まれます。
- ステップ1:SSL証明書を取得する
- ステップ2:サービス定義および構成ファイルを変更する
- 手順3:展開パッケージと証明書をダウンロードする
- ステップ4. HTTPSを介して役割インスタンスに接続する
ステップ1:SSL証明書を取得する
アプリケーション用にSSLを構成するには、まず、認可された独立した認証局によって署名されたSSL証明書を取得する必要があります。 SSL証明書をまだお持ちでない場合は、それらを販売している会社から購入してください。
Windows AzureのSSL証明書は、次の要件を満たしている必要があります。
- 秘密鍵を含む;
- サポート鍵交換(.pfxファイル);
- 証明書の受信者名は、サービスへのアクセス元のドメインに対応している必要があります。 cloudapp.netドメインのSSL証明書を取得することはできないため、証明書の受信者名は、アプリケーションへのアクセスを提供するドメインの名前と一致する必要があります。
- 証明書は、2048ビット以上のキーで暗号化を使用する必要があります。
テスト用に自己署名証明書を作成できます。 IISマネージャーで自己署名証明書を作成する方法の詳細については、 「ロールの証明書を作成する方法」を参照してください。
次に、証明書の情報をサービス定義とその構成ファイルに追加する必要があります。
ステップ2:サービス定義および構成ファイルを変更する
証明書を使用してHTTPSエンドポイントを追加するようにアプリケーションを構成する必要があります。 その結果、サービスの定義および構成ファイルを更新する必要があります。
開発環境でサービス定義ファイル(CSDEF)を開き、 WebRoleセクションにCertificatesサブキーを追加してから、次の証明書情報を提供します。
<WebRole name="CertificateTesting" vmsize="Small"> ... <Certificates> <Certificate name="SampleCertificate" storeLocation="LocalMachine" storeName="CA" /> </Certificates> ... </WebRole>
[ 証明書]サブセクションで、証明書の名前、場所、および証明書が置かれているストアの名前を指定します。 この例では、証明書は認証局に保存されていますが、別の場所を選択できます。 詳細については、 「証明書をサービスに関連付ける方法 」セクションを参照してください 。
サービス定義ファイルを開き、 エンドポイントセクションにInputEndpoint要素を追加して、HTTPSの使用を有効にします。
<WebRole name="CertificateTesting" vmsize="Small"> ... <Endpoints> <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="SampleCertificate" /> </Endpoints> ... </WebRole>
サービス定義ファイルを開き、 Bindings要素をSitesセクションに追加します。 その結果、エンドポイントとサイトの間にHTTPSバインディングが作成されます。
<WebRole name="CertificateTesting" vmsize="Small"> ... <Sites> <Site name="Web"> <Bindings> <Binding name="HttpsIn" endpointName="HttpsIn" /> </Bindings> </Site> </Sites> ... </WebRole>
これで、サービス定義ファイルに必要なすべての変更が行われました。 証明書情報をサービス構成ファイルに追加します。
サービス構成ファイル(CSCFG)を開き、 証明書のサブキーを[ 役割]セクションに追加し、次の指紋を証明書の対応する値に置き換えます。
<Role name="Deployment"> ... <Certificates> <Certificate name="SampleCertificate" thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff" thumbprintAlgorithm="sha1" /> </Certificates> ... </Role>
サービス定義および構成ファイルを更新した後、アプリケーションインストールパッケージを作成し、Windows Azureにダウンロードします。 cspackツールを使用する場合は、 / generateConfigurationFileフラグが無効になっていることを確認してください。無効にしないと、指定した証明書情報が上書きされます。
手順3:展開パッケージと証明書をダウンロードする
インストールパッケージは正しい証明書を使用し、HTTPSエンドポイントが追加されます。 これで、管理ポータルからパッケージと証明書をWindows Azureにダウンロードできます。
Windows Azure管理ポータルにログインし、[ホストされたサービス]セクションを開きます。 [ 新しいホストサービス ] をクリックし、サービスに関する必要な情報を入力して、[ 証明書の追加 ] をクリックします。

[ 証明書のアップロード]セクションで、SSL証明書ファイル(.pfx)へのパスと証明書のパスワードを指定し、[ OK ]をクリックします。

サービスを作成するには、[ OK ]をクリックします。 準備完了ステータスが表示されたら、次の手順に進みます。
ステップ4. HTTPSを介して役割インスタンスに接続する
Windows Azureにアプリケーションをデプロイして実行したら、HTTPS経由でアプリケーションに接続する必要があります。
管理ポータルでアプリケーションを選択し、[ プロパティ ]パネルでDNSという名前のリンクを右クリックして[ コピー ]を選択します。

このアドレスをWebブラウザウィンドウに貼り付け、アドレスがhttpではなくhttpsで始まることを確認して、ページに移動します。
ブラウザにアドレスが緑色で表示され、HTTPS接続が使用されていることが通知されます。 また、アプリケーションがSSLで正しく機能することも意味します。
ご注意 自己署名証明書を使用している場合、自己署名証明書に関連付けられているHTTPSエンドポイントに接続すると、ブラウザーにエラーが表示されます。 認定センターで証明書に署名することでこの問題を解決することも、単に無視することもできます。

追加のリソース