ACM を使用して Windows SSL 証明書をApplication Load Balancer に移行 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ACM を使用して Windows SSL 証明書をApplication Load Balancer に移行

作成者:Chandra Sekhar Yaratha (AWS) と Igor Kovalchuk (AWS)

環境:本稼働

ソース:Windows ウェブアプリケーション

ターゲット:AWS上の Application Load Balancer

R タイプ:リプラットフォーム

ワークロード: Microsoft

テクノロジー: 移行、管理とガバナンス、ウェブおよびモバイルアプリ

AWS サービス: Elastic Load Balancing (ELB)、AWS Certificate Manager (ACM)

[概要]

このパターンでは、AWS Certificate Manager (ACM) を使用して、オンプレミスサーバーでホストされているウェブサイトまたは Microsoft インターネットインフォメーションサービス (IIS) 上の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから既存のセキュアソケットレイヤー (SSL) 証明書を移行するためのガイダンスを提供します。その後、SSL 証明書は AWS の Elastic Load Balancing で使用できます。

SSL はデータを保護し、本人確認を行い、検索エンジンのランキングを向上させ、ペイメントカード業界データセキュリティ基準 (PCI DSS) の要件を満たすのに役立ち、顧客の信頼を高めます。これらのワークロードを管理する開発者や IT チームは、IIS サーバーや Windows サーバーなどの ウェブアプリケーションとインフラストラクチャがベースラインポリシーに準拠し続けることを望んでいます。

このパターンでは、既存の SSL 証明書を Microsoft IIS から手動でエクスポートし、個人情報交換 (PFX) 形式から ACM がサポートするプライベート拡張メール (PEM) 形式に変換し、AWS アカウントの ACM にインポートします。また、アプリケーションのApplication Load Balancer を作成し、インポートした証明書を使用するようにApplication Load Balancer を設定する方法についても説明します。その後、HTTPS 接続はApplication Load Balancer で終了されるため、ウェブサーバー上で追加の構成オーバーヘッドが発生することはありません。詳細については、 のCreate an HTTPS Listener for Your Application Load Balancerを参照してください。

Windows サーバーは.pfx または.p12 ファイルを使用して、パブリックキーファイル (SSL 証明書) と固有のプライベートキーファイルを格納します。認証局 (CA) が公開キーファイルを提供します。サーバーを使用して、証明書署名要求 (CSR) が作成された関連する秘密キーファイルを生成します。

前提条件と制限

前提条件

  • アクティブなAWS アカウント

  • ターゲットが使用する各アベイラビリティーゾーンで少なくとも 1 つのプライベートサブネットと 1 つのパブリックサブネットを持つ AWS の仮想プライベートクラウド (VPC)

  • Windows サーバー2012 以降で実行されている IIS バージョン 8.0 以降

  • IIS で実行されているウェブアプリケーション

  • IIS サーバーへの管理者アクセス。

アーキテクチャ

ソーステクノロジースタック

  • SSL を使用した IISウェブサーバーの実装により、データが暗号化された接続 (HTTPS) で安全に送信されるようにします。

ソースアーキテクチャ

ACM を使用して Windows SSL 証明書をApplication Load Balancer に移行するためのソースアーキテクチャ

ターゲットテクノロジースタック

  • AWS アカウントの ACM 証明書

  • インポートされた証明書を使用するように設定されたApplication Load Balancer

  • プライベートサブネット内の Windows サーバーインスタンス

ターゲット アーキテクチャ

ACM を使用して Windows SSL 証明書をApplication Load Balancer に移行するためのターゲットアーキテクチャ

ツール

ベストプラクティス

  • HTTP から HTTPS へのトラフィックリダイレクトを強制します。

  • Application Load Balancer のセキュリティグループを適切に設定して、特定のポートへのインバウンドトラフィックのみを許可します。

  • 複数のアベイラビリティーゾーンで EC2 インスタンスを起動し、高可用性を確保します。

  • IP アドレスの代わりに、アプリケーションロードバランサーの DNS 名を指すようにアプリケーションのドメインを設定します。

  • Application Load Balancer にアプリケーションレイヤーのヘルスチェック が設定されていることを確認します。

  • ヘルスチェックのしきい値を設定します。

  • Amazon CloudWatch を使用して Application Load Balancer をモニタリングします。

エピック

タスク説明必要なスキル

Windows サーバーから.pfx ファイルをエクスポートします。

Windows Server のオンプレミスの IIS マネージャーから SSL 証明書を.pfx ファイルとしてエクスポートするには:

  1. スタート管理者インターネットインフォメーションサービス (IIS) マネージャーを選択します。

  2. サーバー名を選択し、セキュリティサーバー証明書をダブルクリックします。

  3. エクスポートする証明書を選択し、エクスポートを選択します。

  4. 証明書のエクスポートボックスで、.pfx ファイルの場所、パス、名前を選択します。

  5. .pfx ファイルのパスワードを指定して確認します。

    注:このパスワードは、.pfx ファイルをインストールするときに必要です。

  6. 「OK」を選択します。

これで、.pfx ファイルが指定した場所とパスに保存されるはずです。

システム管理者
タスク説明必要なスキル

OpenSSL ツールキットをダウンロードし、インストールします。

  1. シャイニングライトプロダクションズのウェブサイトから Win32/Win64 OpenSSL をダウンロードしてインストールします。

  2. OpenSSL バイナリの場所をシステム PATH 変数に追加して、バイナリをコマンドラインで使用できるようにします。

システム管理者

PFX でエンコードされた証明書を PEM 形式に変換します。

次の手順では、PFX でエンコードされた署名付き証明書ファイルを PEM 形式の 3 つのファイルに変換します。

  • cert-file.pem リソースの SSL/TLS 証明書が含まれます。

  • privatekey.pem パスワード保護されていない証明書のプライベートキーが含まれます。

  • ca-chain.pem CA のルート証明書が含まれます。

PFX でエンコードされた証明書を変換するには:

  1. Windows を実行します PowerShell。

  2. 次のコマンドを使用して、プライベートキーと証明書をPFXファイルから抽出します。プロンプトが表示されたら、証明書のパスワードを入力します。

    openssl pkcs12 -in <filename>.pfx -nocerts -out withpw-privatekey.pem

    このコマンドは、privatekey.pem という名前の PEM エンコードされたプライベートキーファイルを生成します。プロンプトが表示されたら、プライベートキーファイルを保護するパスフレーズを入力します。

  3. 次のコマンドを実行して、パスフレーズを設定します。プロンプトが表示されたら、ステップ 2 で作成したパスフレーズを入力します。

    openssl rsa -in withpw-privatekey.pem -out privatekey.pem

    コマンドが成功する場合、「RSA キーの書き込み中」というメッセージが表示されます。

  4. 次のコマンドを使用して、PFX ファイルから PEM ファイルに証明書を転送します。

    openssl pkcs12 -in <file_name>.pfx -clcerts -nokeys -out cert-file.pem

    このコマンドは cert-file.pem という名前のPEMエンコードされた証明書を作成します。コマンドが成功する場合、「MAC 検証済み OK」というメッセージが表示されます。

  5. PFX ファイルから CA チェーンファイルを作成します。次のコマンドを実行して、ca-chain.pem という名前のファイルを作成します。

    openssl pkcs12 -in <file_name>.pfx -cacerts -nokeys -chain -out ca-chain.pem

    コマンドが成功する場合、「MAC 検証済み OK」というメッセージが表示されます。

システム管理者
タスク説明必要なスキル

証明書をインポートするように準備します。

ACM コンソール証明書のインポートを選択します。

クラウド管理者

証明書本文を提供します。

証明書本文の場合、インポートする PEM エンコードされた証明書を貼り付けます。

このエピックの他のタスクで説明されているコマンドと手順の詳細については、ACM ドキュメントの証明書のインポート を参照してください。

クラウド管理者

証明書のプライベートキーを指定します。

証明書のプライベートキーの場合、PEM エンコードされ、証明書のパブリックキーに一致する暗号化されていないプライベートキーを貼り付けます。

クラウド管理者

証明書チェーン。

証明書チェーンでは、CertificateChain.pem ファイルに保存されている PEM エンコードされた証明書チェーンを貼り付けます。

クラウド管理者

証明書をインポートする

レビューとインポートを選択します。証明書に関する情報が正しいことを確認し、インポートを選択します。

クラウド管理者
タスク説明必要なスキル

ロードバランサーとリスナーを作成し、設定します。

Elastic Load Balancing ドキュメント の指示に従って、ターゲットグループを設定し、ターゲットを登録し、Application Load Balancer とリスナーを作成します。ポート 443 に 2 つ目のリスナー (HTTPS) を追加します。

クラウド管理者

トラブルシューティング

問題ソリューション

Windows PowerShell は、システムパスに追加した後でも OpenSSL コマンドを認識しません。

$env:path をチェックして、OpenSSL バイナリの場所が含まれていることを保証します。

そうでない場合は、 で次のコマンドを実行します PowerShell。

$env:path = $env:path + ";C:\OpenSSL-Win64\bin"

関連リソース

ACM への証明書のインポート

Application Load Balancer の作成