AWS CloudHSM NGINX または Apache with OpenSSL を使用した Linux での SSL/TLS オフロード - AWS CloudHSM

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

AWS CloudHSM NGINX または Apache with OpenSSL を使用した Linux での SSL/TLS オフロード

このトピックでは、Linux ウェブサーバー上の AWS CloudHSM を使用して SSL/TLS オフロードを設定する手順を説明します。

概要:

Linux では、NGINXApache HTTP サーバーのウェブサーバーソフトウェアは OpenSSL とネイティブに統合して HTTPS をサポートします。OpenSSL 用AWS CloudHSM 動的エンジンには、暗号化オフロードとキーストレージ用に、ウェブサーバーソフトウェアがクラスターの HSM を使用することを許可するインターフェイスが用意されています。OpenSSL エンジンは、ウェブサーバーと AWS CloudHSM クラスターの橋渡しをします。

このチュートリアルを完了するには、まず、Linux 上で NGINX と Apache のどちらのウェブサーバーを使用するかを選択する必要があります。選択したら、チュートリアルに以下の方法が表示されます。

  • Amazon EC2 インスタンスに、ウェブサーバーソフトウェアをインストールします。

  • AWS CloudHSM クラスターに保存されている秘密キーで、HTTPS をサポートするようにウェブサーバソフトウェアを設定します。

  • (オプション)Amazon EC2 を使用して 2 台目のウェブサーバーインスタンスを作成し、Elastic Load Balancing を使用してロードバランサーを作成します。ロードバランサーを使用すると、複数のサーバーに負荷を分散することでパフォーマンスを向上させることができます。また、1 つ以上のサーバーに障害が発生した場合、冗長性と高可用性を提供します。

始める準備ができたら、「ステップ 1: 前提条件の設定」を参照してください。

ステップ 1: 前提条件の設定

プラットフォームごとに、異なる前提条件が必要です。以下の前提条件セクションのうち、お使いのプラットフォームに合ったものをご利用ください。

クライアント SDK 5 の前提条件

クライアント SDK 5でウェブサーバー SSL/TLS オフロードを設定するには、以下が必要です。

  • 少なくとも 2 つのハードウェアセキュリティモジュール (HSM) を持つアクティブな AWS CloudHSM クラスター

    注記

    HSM クラスターは1つでも使用できますが、まずクライアントキーの耐久性を無効にする必要があります。詳細については、クライアントキーの耐久性設定の管理 そして クライアント SDK 5 設定ツール を参照してください。

  • Amazon EC2 インスタンスが Linux オペレーティングシステムを実行します。インスタンスに次のソフトウェアがインストールされていることを確認します。

    • ウェブサーバー (NGINX または Apache)

    • クライアント SDK 5 の OpenSSL 動的エンジン

  • HSM でこのウェブサーバーのプライベートキーを所有および管理する Crypto User (CU)。

Linux ウェブサーバーインスタンスをセットアップし、HSM で CU を作成するには
  1. OpenSSL Dynamic Engine をインストールして設定します AWS CloudHSM。OpenSSL ダイナミックエンジンのインストールの詳細については、クライアント SDK 5 の OpenSSL 動的エンジン を参照してください。

  2. クラスターにアクセスできる EC2 Linux インスタンスで、NGINX または Apache ウェブサーバーをインストールします。

    Amazon Linux 2
    • Amazon Linux 2 で最新バージョンの NGINX をダウンロードする方法については、NGINX のウェブサイト を参照してください。

      Amazon Linux 2 で入手可能な NGINX の最新バージョンは、システムバージョンの OpenSSL よりも新しいバージョンの OpenSSL を使用しています。NGINX をインストールしたら、 AWS CloudHSM OpenSSL Dynamic Engine ライブラリから、このバージョンの OpenSSL が想定する場所へのシンボリックリンクを作成する必要があります。

      $ sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
    • Apache

      $ sudo yum install httpd mod_ssl
    Amazon Linux 2023
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd mod_ssl
    Red Hat 8
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd mod_ssl
    Red Hat 9
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd mod_ssl
    Ubuntu 22.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
    Ubuntu 24.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
  3. CloudHSM CLI を使用して Crypto User を作成します。HSM ユーザーの管理の詳細については、CloudHSM CLI を使用した HSM ユーザー管理について を参照してください。

    ヒント

    CU のユーザー名とパスワードを書き留めます。後に、ウェブサーバーの HTTPS プライベートキーや証明書を生成またはインポートするときに必要になります。

以上のステップが完了したら、「ステップ 2: プライベートキーと SSL/TLS 証明書を生成する」に進みます。

注意事項

  • セキュリティ強化 Linux (SELinux) および Web サーバーを使用するには、クライアント SDK 5 が HSM と通信するために使用するポート 2223 でアウトバウンド TCP 接続を許可する必要があります。

  • クラスターを作成してアクティブ化し、EC2 インスタンスにクラスターへのアクセス権を付与するには、AWS CloudHSMの使用開始 の手順を実行します。「はじめに」では、1 つの HSM と Amazon EC2 クライアント インスタンスを含むアクティブなクラスターを作成するための段階的な手順が説明されています。このクライアントインスタンスをウェブサーバーとして使用することができます。

  • クライアントキーの耐久性を無効化しないようにするには、クラスターに複数の HSM を追加します。詳細については、「AWS CloudHSM クラスターへの HSM の追加」を参照してください。

  • クライアントインスタンスに接続するには、SSH または PuTTY を使用することができます。詳細については、「Amazon EC2 ドキュメント」の「SSH を使用した Linux インスタンスへの接続」または「PuTTY を使用した Windows から Linux インスタンスへの接続」を参照してください。

ステップ 2: プライベートキーと SSL/TLS 証明書を生成する

HTTPS を有効にするには、ウェブサーバーアプリケーション (NGINX または Apache) にプライベートキーおよび対応する SSL/TLS 証明書が必要です。でウェブサーバーの SSL/TLS オフロードを使用するには AWS CloudHSM、プライベートキーを AWS CloudHSM クラスターの HSM に保存する必要があります。最初にプライベートキーを使用し、そのキーを使って証明書署名リクエスト (CSR) を作成します。次に HSM からフェイク PEM プライベートキーをエクスポートします。これは、HSM に保存されているプライベートキーへの参照を含む PEM 形式のプライベートキーファイルで、実際のプライベートキーではありません。ウェブサーバーは、SSL/TLS オフロード中にフェイク PEM プライベートキーファイルを使用して HSM のプライベートキーを識別します。

プライベートキーと証明書の生成

プライベートキーの生成

このセクションでは、CloudHSM CLI を使用してキーペアを生成する方法について説明します。HSM 内でキーペアを生成したら、それをフェイク PEM ファイルとしてエクスポートし、対応する証明書を生成できます。

CloudHSM CLI をインストールして設定する
  1. CloudHSM CLI をインストールして設定します。

  2. CloudHSM CLI を起動するには、次のコマンドを使用します。

    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
  3. 次のコマンドを実行して HSM にログインします。<user name> を Crypto User のユーザー名に置き換えます。

    Command: login --username <user name> --role crypto-user

プライベートキーの生成

ユースケースに応じて、RSA または EC キーペアを生成できます。次のいずれかを行います。

  • HSM で RSA プライベートキーを生成するには

    key generate-asymmetric-pair rsa コマンドを使用して RSA キーペアを生成します。この例では、modulus が 2,048、公開指数が 65,537、パブリックキーラベルが tls_rsa_pub、プライベートキーラベルが tls_rsa_private の RSA キーペアを生成します。

    aws-cloudhsm > key generate-asymmetric-pair rsa \ --public-exponent 65537 \ --modulus-size-bits 2048 \ --public-label tls_rsa_pub \ --private-label tls_rsa_private \ --private-attributes sign=true { "error_code": 0, "data": { "public_key": { "key-reference": "0x0000000000280cc8", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "rsa", "label": "tls_rsa_pub", "id": "", "check-value": "0x01fe6e", "class": "public-key", "encrypt": true, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 512, "public-exponent": "0x010001", "modulus": "0xb1d27e857a876f4e9fd5de748a763c539b359f937eb4b4260e30d1435485a732c878cdad9c72538e2215351b1d41358c9bf80b599c 73a80fdb457aa7b20cd61e486c326e2cfd5e124a7f6a996437437812b542e3caf85928aa866f0298580f7967ee6aa01440297d7308fdd9b76b70d1b67f12634d f6e6296d6c116d5744c6d60d14d3bf3cb978fe6b75ac67b7089bafd50d8687213b31abc7dc1bad422780d29c851d5102b56f932551eaf52a9591fd8c43d81ecc 133022653225bd129f8491101725e9ea33e1ded83fb57af35f847e532eb30cd7e726f23910d2671c6364092e834697ec3cef72cc23615a1ba7c5e100156ae0ac ac3160f0ca9725d38318b7", "modulus-size-bits": 2048 } }, "private_key": { "key-reference": "0x0000000000280cc7", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "rsa", "label": "tls_rsa_private", "id": "", "check-value": "0x01fe6e", "class": "private-key", "encrypt": false, "decrypt": true, "token": true, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 1217, "public-exponent": "0x010001", "modulus": "0xb1d27e857a876f4e9fd5de748a763c539b359f937eb4b4260e30d1435485a732c878cdad9c72538e2215351b1d41358c9bf80b599c73a80fdb457aa7b20cd61e486c326e2cfd5e124a7f6a996437437812b542e3caf85928aa866f0298580f7967ee6aa01440297d7308fdd9b76b70d1b67f12634df6e6296d6c116d5744c6d60d14d3bf3cb978fe6b75ac67b7089bafd50d8687213b31abc7dc1bad422780d29c851d5102b56f932551eaf52a9591fd8c43d81ecc133022653225bd129f8491101725e9ea33e1ded83fb57af35f847e532eb30cd7e726f23910d2671c6364092e834697ec3cef72cc23615a1ba7c5e100156ae0acac3160f0ca9725d38318b7", "modulus-size-bits": 2048 } } } }
  • HSM で EC プライベートキーを生成するには

    key generate-asymmetric-pair ec コマンドを使用して EC キーペアを生成します。この例では、prime256v1 曲線 (NID_X9_62_prime256v1 曲線に対応) を使用して EC キーペアを生成します。パブリックキーラベルは tls_ec_pub、プライベートキーラベルは tls_ec_private です。

    aws-cloudhsm > key generate-asymmetric-pair ec \ --curve prime256v1 \ --public-label tls_ec_pub \ --private-label tls_ec_private \ --private-attributes sign=true { "error_code": 0, "data": { "public_key": { "key-reference": "0x000000000012000b", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "session" }, "attributes": { "key-type": "ec", "label": "tls_ec_pub", "id": "", "check-value": "0xd7c1a7", "class": "public-key", "encrypt": false, "decrypt": false, "token": false, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 57, "ec-point": "0x047096513df542250a6b228fd9cb67fd0c903abc93488467681974d6f371083fce1d79da8ad1e9ede745fb9f38ac8622a1b3ebe9270556000c", "curve": "secp224r1" } }, "private_key": { "key-reference": "0x000000000012000c", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "session" }, "attributes": { "key-type": "ec", "label": "tls_ec_private", "id": "", "check-value": "0xd7c1a7", "class": "private-key", "encrypt": false, "decrypt": false, "token": false, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 122, "ec-point": "0x047096513df542250a6b228fd9cb67fd0c903abc93488467681974d6f371083fce1d79da8ad1e9ede745fb9f38ac8622a1b3ebe9270556000c", "curve": "secp224r1" } } } }

フェイク PEM プライベートキーファイルをエクスポート

HSM にプライベートキーを作成したら、フェイク PEM プライベートキーファイルをエクスポートする必要があります。このファイルには実際のキーデータは含まれていませんが、OpenSSL Dynamic Engine が HSM 上のプライベートキーを識別できるようにします。その後、プライベートキーを使用して証明書署名リクエスト (CSR) を作成し、CSR に署名して証明書を作成できます。

key generate-file コマンドを使用して、プライベートキーをフェイク PEM 形式でエクスポートしてファイルに保存します。以下の値は独自の値に置き換えてください。

  • <private_key_label> – 前のステップで生成したプライベートキーのラベル。

  • <web_server_fake_pem.key> – フェイク PEM キーが書き込まれるファイルの名前。

aws-cloudhsm > key generate-file --encoding reference-pem --path <web_server_fake_pem.key> --filter attr.label=<private_key_label> { "error_code": 0, "data": { "message": "Successfully generated key file" } }

CloudHSM CLI を終了する

CloudHSM CLI を停止するには、次のコマンドを実行します。

aws-cloudhsm > quit

これで、前のコマンドで <web_server_fake_pem.key> が指定したパスに新しいファイルがシステム上に作成されることになります。このファイルはフェイク PEM プライベートキーファイルです。

自己署名証明書を生成します

フェイク PEM プライベートキーを生成したら、このファイルを使用して証明書署名リクエスト (CSR) と証明書を生成できます。

本稼働環境では、通常、認証局 (CA) を使用して CSR から証明書を作成します。CA は、テスト環境では必要ありません。CA を使用する場合は、CA に CSR ファイルを送信し、HTTPS 用のウェブサーバーで提供される署名付き SSL/TLS 証明書を使用してください。

CA を使用する代わりに、 AWS CloudHSM OpenSSL Dynamic Engine を使用して自己署名証明書を作成できます。自己署名証明書はブラウザによって信頼されないため、本稼働環境では使用しないでください。これらは、テスト環境で使用することができます。

警告

自己署名証明書はテスト環境でのみ使用する必要があります。本稼働環境では、証明機関を使用して証明書を作成するなど、より安全な方法を使用してください。

OpenSSL Dynamic Engine をインストールして設定する
  1. クライアントインスタンスに接続します。

  2. AWS CloudHSM クライアント SDK 5 用の OpenSSL Dynamic Engine をインストールする

証明書を生成する
  1. 以前のステップで生成したフェイク PEM ファイルのコピーを入手します。

  2. CSR を作成する

    次のコマンドを実行して、 AWS CloudHSM OpenSSL Dynamic Engine を使用して証明書署名リクエスト (CSR) を作成します。<web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。<web_server.csr> を CSR が含まれるファイルの名前に置き換えます。

    req コマンドは対話的です。各フィールドに対応します。このフィールド情報は、SSL/TLS 証明書にコピーされます。

    $ openssl req -engine cloudhsm -new -key <web_server_fake_pem.key> -out <web_server.csr>
  3. 自己署名証明書を作成する

    次のコマンドを実行して、 AWS CloudHSM OpenSSL Dynamic Engine を使用して HSM のプライベートキーで CSR に署名します。これにより、自己署名証明書が作成されます。コマンドの以下の値を独自の値に置き換えます。

    • <web_server.csr> - CSR を含むファイルの名前です。

    • <web_server_fake_pem.key> - フェイク PEM プライベートキーが含まれるファイルの名前です。

    • <web_server.crt> - ウェブサーバー証明書が含まれるファイルの名前です。

    $ openssl x509 -engine cloudhsm -req -days 365 -in <web_server.csr> -signkey <web_server_fake_pem.key> -out <web_server.crt>

以上のステップが完了したら、「ステップ 3: ウェブサーバーを設定する」に進みます。

ステップ 3: ウェブサーバーを設定する

前のステップで作成した HTTPS 証明書とフェイク PEM プライベートキーを使用するようにウェブサーバーソフトウェアの設定を更新します。開始する前に、既存の証明書とキーを必ずバックアップしてください。これで、 AWS CloudHSMを使用して、Linux ウェブサーバーソフトウェアに SSL/TLS オフロードを設定できます。

次のいずれかのセクションの手順を完了します。

NGINX ウェブサーバーを設定する

このセクションは、サポートされているプラットフォームで NGINX を設定するために使用します。

NGINX のウェブサーバー設定を更新するには
  1. クライアントインスタンスに接続します。

  2. 次のコマンドを実行して、ウェブサーバー証明書とフェイク PEM プライベートキーに必要なディレクトリを作成します。

    $ sudo mkdir -p /etc/pki/nginx/private
  3. 次のコマンドを実行して、ウェブサーバーの証明書を所定場所にコピーします。<web_server.crt> を、ウェブサーバー証明書の名前に置き換えます。

    $ sudo cp <web_server.crt> /etc/pki/nginx/server.crt
  4. 次のコマンドを実行して、フェイク PEM プライベートキーを所定場所にコピーします。<web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。

    $ sudo cp <web_server_fake_pem.key> /etc/pki/nginx/private/server.key
  5. 次のコマンドを実行してファイルの所有権を変更し、nginx という名前のユーザーがそれらのファイルを読み取れるようにします。

    $ sudo chown nginx /etc/pki/nginx/server.crt /etc/pki/nginx/private/server.key
  6. 次のコマンドを実行して、/etc/nginx/nginx.conf ファイルをバックアップします。

    $ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
  7. NGINX の設定を更新します。

    注記

    各クラスターは、すべての NGINX ウェブサーバーで最大 1,000 の NGINX ワーカープロセスをサポートできます。

    Amazon Linux 2

    テキストエディタを使用して、/etc/nginx/nginx.conf ファイルを編集します。これには Linux の root 権限が必要です。ファイルの先頭に、次の行を追加します。

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    次に、ファイルの TLS セクションに次の内容を追加します。

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Amazon Linux 2023

    テキストエディタを使用して、/etc/nginx/nginx.conf ファイルを編集します。これには Linux の root 権限が必要です。ファイルの先頭に、次の行を追加します。

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    次に、ファイルの TLS セクションに次の内容を追加します。

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Red Hat 8

    テキストエディタを使用して、/etc/nginx/nginx.conf ファイルを編集します。これには Linux の root 権限が必要です。ファイルの先頭に、次の行を追加します。

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    次に、ファイルの TLS セクションに次の内容を追加します。

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Red Hat 9

    テキストエディタを使用して、/etc/nginx/nginx.conf ファイルを編集します。これには Linux の root 権限が必要です。ファイルの先頭に、次の行を追加します。

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    次に、ファイルの TLS セクションに次の内容を追加します。

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 22.04 LTS

    テキストエディタを使用して、/etc/nginx/nginx.conf ファイルを編集します。これには Linux の root 権限が必要です。ファイルの先頭に、次の行を追加します。

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    次に、ファイルの TLS セクションに次の内容を追加します。

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 24.04 LTS

    テキストエディタを使用して、/etc/nginx/nginx.conf ファイルを編集します。これには Linux の root 権限が必要です。ファイルの先頭に、次の行を追加します。

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    次に、ファイルの TLS セクションに次の内容を追加します。

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

    ファイルを保存します。

  8. systemd 設定ファイルをバックアップしてから、EnvironmentFile パスを設定します。

    Amazon Linux 2
    1. nginx.service ファイルをバックアップします。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. /lib/systemd/system/nginx.service ファイルをテキストエディタで開き、[Service] セクションに次のパスを追加します。

      EnvironmentFile=/etc/sysconfig/nginx
    Amazon Linux 2023
    1. nginx.service ファイルをバックアップします。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. テキストエディタで /lib/systemd/system/nginx.service ファイルを開き、〔サービス] セクションで次のパスを追加します。

      EnvironmentFile=/etc/sysconfig/nginx
    Red Hat 8
    1. nginx.service ファイルをバックアップします。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. /lib/systemd/system/nginx.service ファイルをテキストエディタで開き、[Service] セクションに次のパスを追加します。

      EnvironmentFile=/etc/sysconfig/nginx
    Red Hat 9
    1. nginx.service ファイルをバックアップします。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. /lib/systemd/system/nginx.service ファイルをテキストエディタで開き、[Service] セクションに次のパスを追加します。

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 22.04 LTS
    1. nginx.service ファイルをバックアップします。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. /lib/systemd/system/nginx.service ファイルをテキストエディタで開き、[Service] セクションに次のパスを追加します。

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 24.04 LTS
    1. nginx.service ファイルをバックアップします。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. /lib/systemd/system/nginx.service ファイルをテキストエディタで開き、[Service] セクションに次のパスを追加します。

      EnvironmentFile=/etc/sysconfig/nginx
  9. /etc/sysconfig/nginx ファイルの存在を確認してから、次のいずれかを実行します。

    • ファイルが存在する場合は、次のコマンドを実行してファイルをバックアップします。

      $ sudo cp /etc/sysconfig/nginx /etc/sysconfig/nginx.backup
    • ファイルが存在しない場合は、テキストエディタを開き、/etc/sysconfig/ フォルダ内に nginx という名前のファイルを作成します。

  10. NGINX 環境を設定します。

    注記

    クライアント SDK 5 では CU の認証情報を保存するための CLOUDHSM_PIN 環境変数が導入されています。

    Amazon Linux 2

    テキストエディタで /etc/sysconfig/nginx ファイルを開きます。これには Linux の root 権限が必要です。Cryptography User (CU) 認証情報を追加:

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    ファイルを保存します。

    Amazon Linux 2023

    テキストエディタで /etc/sysconfig/nginx ファイルを開きます。これには Linux の root 権限が必要です。Cryptography User (CU) 認証情報を追加:

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    ファイルを保存します。

    Red Hat 8

    テキストエディタで /etc/sysconfig/nginx ファイルを開きます。これには Linux の root 権限が必要です。Cryptography User (CU) 認証情報を追加:

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    ファイルを保存します。

    Red Hat 9

    テキストエディタで /etc/sysconfig/nginx ファイルを開きます。これには Linux の root 権限が必要です。Cryptography User (CU) 認証情報を追加:

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    ファイルを保存します。

    Ubuntu 22.04 LTS

    テキストエディタで /etc/sysconfig/nginx ファイルを開きます。これには Linux の root 権限が必要です。Cryptography User (CU) 認証情報を追加:

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    ファイルを保存します。

    Ubuntu 24.04 LTS

    テキストエディタで /etc/sysconfig/nginx ファイルを開きます。これには Linux の root 権限が必要です。Cryptography User (CU) 認証情報を追加:

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    ファイルを保存します。

  11. NGINX ウェブサーバーを起動します。

    Amazon Linux 2

    実行中の NGINX プロセスをすべて停止する

    $ sudo systemctl stop nginx

    systemd 設定をリロードして最新の変更を取得する

    $ sudo systemctl daemon-reload

    NGINX プロセスを開始する

    $ sudo systemctl start nginx
    Amazon Linux 2023

    すべての NGINX プロセスを停止する

    $ sudo systemctl stop nginx

    systemd 設定をリロードして最新の変更を取得する

    $ sudo systemctl daemon-reload

    NGINX を開始する

    $ sudo systemctl start nginx
    Red Hat 8

    実行中の NGINX プロセスをすべて停止する

    $ sudo systemctl stop nginx

    systemd 設定をリロードして最新の変更を取得する

    $ sudo systemctl daemon-reload

    NGINX プロセスを開始する

    $ sudo systemctl start nginx
    Red Hat 9

    実行中の NGINX プロセスをすべて停止する

    $ sudo systemctl stop nginx

    systemd 設定をリロードして最新の変更を取得する

    $ sudo systemctl daemon-reload

    NGINX プロセスを開始する

    $ sudo systemctl start nginx
    Ubuntu 22.04 LTS

    実行中の NGINX プロセスをすべて停止する

    $ sudo systemctl stop nginx

    systemd 設定をリロードして最新の変更を取得する

    $ sudo systemctl daemon-reload

    NGINX プロセスを開始する

    $ sudo systemctl start nginx
    Ubuntu 24.04 LTS

    実行中の NGINX プロセスをすべて停止する

    $ sudo systemctl stop nginx

    systemd 設定をリロードして最新の変更を取得する

    $ sudo systemctl daemon-reload

    NGINX プロセスを開始する

    $ sudo systemctl start nginx
  12. (オプション)スタートアップ時に NGINX を起動するようにプラットフォームを設定します。

    Amazon Linux 2
    $ sudo systemctl enable nginx
    Amazon Linux 2023
    $ sudo systemctl enable nginx
    Red Hat 8
    $ sudo systemctl enable nginx
    Red Hat 9
    $ sudo systemctl enable nginx
    Ubuntu 22.04 LTS
    $ sudo systemctl enable nginx
    Ubuntu 24.04 LTS
    $ sudo systemctl enable nginx

ウェブサーバー設定を更新したら、「ステップ 4: HTTPS トラフィックを有効にして証明書を検証する」に移動します。

Apache ウェブサーバーの設定をします。

このセクションでは、サポートされているプラットフォームで Apache を設定します。

Apache のウェブサーバー設定を更新するには
  1. Amazon EC2 クライアントインスタンスに接続します。

  2. プラットフォーム用の証明書とプライベートキーのデフォルトの場所を定義します。

    Amazon Linux 2

    /etc/httpd/conf.d/ssl.conf ファイルに、次の値が存在することを確認します。

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Amazon Linux 2023

    /etc/httpd/conf.d/ssl.conf ファイルで、次の値が存在することを確認します。

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Red Hat 8

    /etc/httpd/conf.d/ssl.conf ファイルに、次の値が存在することを確認します。

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Red Hat 9

    /etc/httpd/conf.d/ssl.conf ファイルに、次の値が存在することを確認します。

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Ubuntu 22.04 LTS

    /etc/apache2/sites-available/default-ssl.conf ファイルに、次の値が存在することを確認します。

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
    Ubuntu 24.04 LTS

    /etc/apache2/sites-available/default-ssl.conf ファイルに、次の値が存在することを確認します。

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
  3. ウェブサーバーの証明書を、プラットフォームで必要な場所にコピーします。

    Amazon Linux 2
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    <web_server.crt> を、ウェブサーバー証明書の名前に置き換えます。

    Amazon Linux 2023
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    <web_server.crt> を、ウェブサーバー証明書の名前に置き換えます。

    Red Hat 8
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    <web_server.crt> を、ウェブサーバー証明書の名前に置き換えます。

    Red Hat 9
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    <web_server.crt> を、ウェブサーバー証明書の名前に置き換えます。

    Ubuntu 22.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    <web_server.crt> を、ウェブサーバー証明書の名前に置き換えます。

    Ubuntu 24.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    <web_server.crt> を、ウェブサーバー証明書の名前に置き換えます。

  4. 偽の PEM プライベートキーをプラットフォームの所定場所にコピーします。

    Amazon Linux 2
    $ sudo cp <web_server_fake_pem.key> /etc/pki/tls/private/localhost.key

    <web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。

    Amazon Linux 2023
    $ sudo cp <web_server_fake_pem.key> /etc/pki/tls/private/localhost.key

    <web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。

    Red Hat 8
    $ sudo cp <web_server_fake_pem.key> /etc/pki/tls/private/localhost.key

    <web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。

    Red Hat 9
    $ sudo cp <web_server_fake_pem.key> /etc/pki/tls/private/localhost.key

    <web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。

    Ubuntu 22.04 LTS
    $ sudo cp <web_server_fake_pem.key> /etc/ssl/private/localhost.key

    <web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。

    Ubuntu 24.04 LTS
    $ sudo cp <web_server_fake_pem.key> /etc/ssl/private/localhost.key

    <web_server_fake_pem.key> をフェイク PEM プライベートキーが含まれるファイルの名前に置き換えます。

  5. プラットフォームで必要な場合は、これらのファイルの所有権を変更します。

    Amazon Linux 2
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    apache という名前のユーザーに読み取り権限を与えます。

    Amazon Linux 2023
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    apache という名前のユーザーに読み取り権限を与えます。

    Red Hat 8
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    apache という名前のユーザーに読み取り権限を与えます。

    Red Hat 9
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    apache という名前のユーザーに読み取り権限を与えます。

    Ubuntu 22.04 LTS

    対処は必要ありません。

    Ubuntu 24.04 LTS

    対処は必要ありません。

  6. プラットフォームに合わせて、Apache のディレクティブを設定します。

    Amazon Linux 2

    このプラットフォームの SSL ファイルを探します。

    /etc/httpd/conf.d/ssl.conf

    このファイルには、サーバーの実行方法を定義する Apache ディレクティブが含まれています。ディレクティブは左側に表示され、その後に値が続きます。テキストエディタを使用して、このファイルを編集します。これには Linux の root 権限が必要です。

    これらの値を使用して、次のディレクティブを更新または入力します。

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    ファイルを保存します。

    Amazon Linux 2023

    このプラットフォームの SSL ファイルを探します。

    /etc/httpd/conf.d/ssl.conf

    このファイルには、サーバーの実行方法を定義する Apache ディレクティブが含まれています。ディレクティブは左側に表示され、その後に値が続きます。テキストエディタを使用して、このファイルを編集します。これには Linux の root 権限が必要です。

    これらの値を使用して、次のディレクティブを更新または入力します。

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    ファイルを保存します。

    Red Hat 8

    このプラットフォームの SSL ファイルを探します。

    /etc/httpd/conf.d/ssl.conf

    このファイルには、サーバーの実行方法を定義する Apache ディレクティブが含まれています。ディレクティブは左側に表示され、その後に値が続きます。テキストエディタを使用して、このファイルを編集します。これには Linux の root 権限が必要です。

    これらの値を使用して、次のディレクティブを更新または入力します。

    SSLCryptoDevice cloudhsm SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProxyCipherSuite HIGH:!aNULL

    ファイルを保存します。

    Red Hat 9

    このプラットフォームの SSL ファイルを探します。

    /etc/httpd/conf.d/ssl.conf

    このファイルには、サーバーの実行方法を定義する Apache ディレクティブが含まれています。ディレクティブは左側に表示され、その後に値が続きます。テキストエディタを使用して、このファイルを編集します。これには Linux の root 権限が必要です。

    これらの値を使用して、次のディレクティブを更新または入力します。

    SSLCryptoDevice cloudhsm SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProxyCipherSuite HIGH:!aNULL

    ファイルを保存します。

    Ubuntu 22.04 LTS

    このプラットフォームの SSL ファイルを探します。

    /etc/apache2/mods-available/ssl.conf

    このファイルには、サーバーの実行方法を定義する Apache ディレクティブが含まれています。ディレクティブは左側に表示され、その後に値が続きます。テキストエディタを使用して、このファイルを編集します。これには Linux の root 権限が必要です。

    これらの値を使用して、次のディレクティブを更新または入力します。

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProtocol TLSv1.2 TLSv1.3

    ファイルを保存します。

    SSL モジュールとデフォルトの SSL サイト設定を有効にします。

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
    Ubuntu 24.04 LTS

    このプラットフォームの SSL ファイルを探します。

    /etc/apache2/mods-available/ssl.conf

    このファイルには、サーバーの実行方法を定義する Apache ディレクティブが含まれています。ディレクティブは左側に表示され、その後に値が続きます。テキストエディタを使用して、このファイルを編集します。これには Linux の root 権限が必要です。

    これらの値を使用して、次のディレクティブを更新または入力します。

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProtocol TLSv1.2 TLSv1.3

    ファイルを保存します。

    SSL モジュールとデフォルトの SSL サイト設定を有効にします。

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
  7. プラットフォーム用の環境値ファイルを設定します。

    Amazon Linux 2

    httpd サービスファイルを開きます。

    /lib/systemd/system/httpd.service

    [Service] セクションの下に、以下を追加します。

    EnvironmentFile=/etc/sysconfig/httpd
    Amazon Linux 2023

    httpd サービスファイルを開きます。

    /lib/systemd/system/httpd.service

    [Service] セクションの下に、以下を追加します。

    EnvironmentFile=/etc/sysconfig/httpd
    Red Hat 8

    httpd サービスファイルを開きます。

    /lib/systemd/system/httpd.service

    [Service] セクションの下に、以下を追加します。

    EnvironmentFile=/etc/sysconfig/httpd
    Red Hat 9

    httpd サービスファイルを開きます。

    /lib/systemd/system/httpd.service

    [Service] セクションの下に、以下を追加します。

    EnvironmentFile=/etc/sysconfig/httpd
    Ubuntu 22.04 LTS

    対処は必要ありません。/etc/sysconfig/httpd に環境値が入ります

    Ubuntu 24.04 LTS

    対処は必要ありません。/etc/sysconfig/httpd に環境値が入ります

  8. プラットフォーム用の環境変数を格納するファイルで、暗号化ユーザー (CU) の認証情報を含む環境変数を設定します。

    Amazon Linux 2

    テキストエディタを使用して、/etc/sysconfig/httpd を編集します。

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    Amazon Linux 2023

    テキストエディタを使用して、/etc/sysconfig/httpd を編集します。

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    Red Hat 8

    テキストエディタを使用して、/etc/sysconfig/httpd を編集します。

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    注記

    クライアント SDK 5 では CU の認証情報を保存するための CLOUDHSM_PIN 環境変数が導入されています。

    Red Hat 9

    テキストエディタを使用して、/etc/sysconfig/httpd を編集します。

    CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    注記

    クライアント SDK 5 では CU の認証情報を保存するための CLOUDHSM_PIN 環境変数が導入されています。

    Ubuntu 22.04 LTS

    テキストエディタを使用して、/etc/apache2/envvars を編集します。

    export CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    注記

    クライアント SDK 5 では CU の認証情報を保存するための CLOUDHSM_PIN 環境変数が導入されています。クライアント SDK 3 では、CU の認証情報を n3fips_password 環境変数に保存していました。クライアント SDK 5 は両方の環境変数をサポートしますが、CLOUDHSM_PIN を使用することを推奨します。

    Ubuntu 24.04 LTS

    テキストエディタを使用して、/etc/apache2/envvars を編集します。

    export CLOUDHSM_PIN=<CU user name>:<password>

    <CU ユーザー名><パスワード> を CU の認証情報に置き換えます。

    注記

    クライアント SDK 5 では CU の認証情報を保存するための CLOUDHSM_PIN 環境変数が導入されています。クライアント SDK 3 では、CU の認証情報を n3fips_password 環境変数に保存していました。クライアント SDK 5 は両方の環境変数をサポートしますが、CLOUDHSM_PIN を使用することを推奨します。

  9. Apache ウェブサーバーを起動します。

    Amazon Linux 2
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Amazon Linux 2023
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Red Hat 8
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Red Hat 9
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Ubuntu 22.04 LTS
    $ sudo service apache2 start
    Ubuntu 24.04 LTS
    $ sudo service apache2 start
  10. (オプション) スタートアップに Apache を起動するようにプラットフォームを設定します。

    Amazon Linux 2
    $ sudo chkconfig httpd on
    Amazon Linux 2023
    $ sudo chkconfig httpd on
    Red Hat 8
    $ systemctl enable httpd
    Red Hat 9
    $ systemctl enable httpd
    Ubuntu 22.04 LTS
    $ sudo systemctl enable apache2
    Ubuntu 24.04 LTS
    $ sudo systemctl enable apache2

ウェブサーバー設定を更新したら、「ステップ 4: HTTPS トラフィックを有効にして証明書を検証する」に移動します。

ステップ 4: HTTPS トラフィックを有効にして証明書を検証する

で SSL/TLS オフロード用にウェブサーバーを設定したら AWS CloudHSM、インバウンド HTTPS トラフィックを許可するセキュリティグループにウェブサーバーインスタンスを追加します。これにより、ウェブブラウザなどのクライアントがウェブサーバーと HTTPS 接続を確立できるようになります。次に、ウェブサーバーに HTTPS 接続し、SSL/TLS オフロード用に設定した証明書を使用していることを確認します AWS CloudHSM。

インバウンド HTTPS 接続の有効化

クライアント (ウェブブラウザなど) からウェブサーバーに接続するには、インバウンド HTTPS 接続を許可するセキュリティグループを作成します。具体的には、ポート 443 でインバウンドの TCP 接続を許可する必要があります。このセキュリティグループをウェブサーバーに割り当てます。

HTTPS のセキュリティグループを作成してウェブサーバーに割り当てるには
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで、[セキュリティグループ] を選択します。

  3. [Create Security Group] を選択します。

  4. [Create Security Group] で、以下の操作を行います。

    1. [Security group name] に、作成するセキュリティグループの名前を入力します

    2. (オプション) 作成するセキュリティグループの説明を入力します。

    3. [VPC] で、ウェブサーバーのAmazon EC2インスタンスが含まれている VPC を選択します。

    4. [Add rule (ルールの追加)] を選択します。

    5. [タイプ] で、ドロップダウンウィンドウから [HTTPS] を選択します。

    6. [ソース] には、ソースの場所を入力します。

    7. [セキュリティグループの作成] を選択してください。

  5. ナビゲーションペインで、[インスタンス] を選択してください。

  6. ウェブサーバーインスタンスの横にあるチェックボックスを選択します。

  7. ページの上部で [アクション] ドロップダウンメニューを選択します。[セキュリティ] を選択し、[セキュリティグループの変更] を選択します。

  8. [関連付けられたセキュリティグループ] で、検索ボックスを選択して HTTPS 用に作成したセキュリティグループを選択します。次に、[セキュリティグループの追加] を選択します。

  9. [保存] を選択します。

設定した証明書が HTTPS で使用されていることを検証する

ウェブサーバーをセキュリティグループに追加した後、SSL/TLS オフロードが自己署名証明書を使用していることを確認できます。この検証には、ウェブブラウザ、または OpenSSL s_client などのツールを使用できます。

ウェブブラウザで SSL/TLS オフロードを確認するには
  1. ウェブブラウザを使用し、サーバーの公開 DNS 名または IP アドレスを使用してウェブサーバーに接続します。アドレスバーの URL が https:// で始まっていることを確認します。例えば、https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/

    ヒント

    Amazon Route 53 などの DNS サービスを使用して、ウェブサイトのドメイン名 (https://www.example.com/ など) をウェブサーバーにルーティングできます。詳細については、Amazon Route 53 開発者ガイドAmazon EC2 インスタンスへのトラフィックのルーティング または DNS サービスのドキュメントを参照してください。

  2. ウェブブラウザを使用して、ウェブサーバー証明書を表示します。詳細については次を参照してください:

    • Mozilla Firefox の場合は、Mozilla サポートウェブサイトの「証明書を見る」を参照してください。

    • Google Chrome の場合は、ウェブ開発者向け Google ツールのウェブサイトで「セキュリティの問題を理解する」を参照してください。

    他のウェブブラウザでも、同様の機能を使用してウェブサーバー証明書を表示できる場合があります。

  3. SSL/TLS 証明書が、ウェブサーバーに設定したものであることを確認してください。

OpenSSL s_client で SSL/TLS オフロードを確認するには
  1. HTTPS を使用してウェブサーバーに接続するには、次の OpenSSL コマンドを実行します。<サーバー名> は、ウェブサーバーの公開 DNS 名または IP アドレスに置き換えます。

    openssl s_client -connect <server name>:443
    ヒント

    Amazon Route 53 などの DNS サービスを使用して、ウェブサイトのドメイン名 (https://www.example.com/ など) をウェブサーバーにルーティングできます。詳細については、Amazon Route 53 開発者ガイドAmazon EC2 インスタンスへのトラフィックのルーティング または DNS サービスのドキュメントを参照してください。

  2. SSL/TLS 証明書が、ウェブサーバーに設定したものであることを確認してください。

これで、ウェブサイトが HTTPS で保護されるようになりました。ウェブサーバーのプライベートキーは、 AWS CloudHSM クラスターの HSM に保存されます。

ロードバランサーを追加するには、「Elastic Load Balancing for でロードバランサーを追加する AWS CloudHSM(オプション)」を参照してください。