X509 証明書を作成し署名する - AWS Elastic Beanstalk

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

X509 証明書を作成し署名する

OpenSSL を使用してアプリケーションの X509 証明書を作成できます。OpenSSL は標準のオープンソースライブラリーで、x509 証明書の作成と署名を含む包括的な暗号関数をサポートしています。OpenSSL の詳細については、www.openssl.org を参照してください。

注記

HTTPS を単一インスタンス環境で使用するか、自己署名証明書を使用して、バックエンドで再度暗号化するには、証明書をローカルに作成する必要があります。ドメイン名を所有している場合は、AWS Certificate Manager (ACM) を使用して で無料で証明書を作成し、AWSロードバランスされた環境で使用できます。手順については、AWS Certificate Managerユーザーガイドの「証明書のリクエスト」を参照してください。

コマンドラインで openssl version を実行して、OpenSSL がすでにインストールされているかどうかを確認します。OpenSSL をインストールしていない場合は、「公開 GitHub リポジトリ」の指示を使用してソースコードをインストールするか、または好みのパッケージマネージャを使用できます。OpenSSL は Elastic Beanstalk の Linux イメージにもインストールされているため、簡単な代替策として、次のように EB CLIeb ssh コマンドを使用して実行環境の EC2 インスタンスに接続できます。

~/eb$ eb ssh [ec2-user@ip-255-55-55-255 ~]$ openssl version OpenSSL 1.0.1k-fips 8 Jan 2015

証明書署名リクエスト(CSR)を作成するための RSA プライベートキーを作成する必要があります。プライベートキーを作成するには、openssl genrsa コマンドを使用します。

[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem Generating RSA private key, 2048 bit long modulus .................................................................................................................................+++ ...............+++ e is 65537 (0x10001)
privatekey.pem

プライベートキーを保存するファイルの名前です。通常、openssl genrsa コマンドは画面にプライベートキーの内容を表示しますが、このコマンドは出力をファイルにパイプします。任意のファイル名を選択し、ファイルを後から取得できるように安全な場所に保存します。プライベートキーをなくした場合は、証明書を使用することはできません。

CSR は、デジタルサーバー証明書を申請するために認証機関(CA)に送信するファイルです。CSR を作成するには、openssl req コマンドを使用します。

$ openssl req -new -key privatekey.pem -out csr.pem You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.

要求された情報を入力して、Enter を押します。以下の表は、各フィールドの例を表示して説明したものです。

名前 説明
国名 2 文字の ISO 略称 (国名コード)。 例 :US = アメリカ
州または県 あなたが所属する組織の所在地の州または県。この名前を省略することはできません。 ワシントン
市区町村 あなたが所属する組織の所在地の市区町村。 Seattle
組織名 組織の正式名称。組織名は、省略不可です。 Example Corp
部門名 追加の部門情報は、省略可能です。 マーケティング
共通名 ウェブサイトの完全修飾ドメイン名 これは、ユーザーがサイトを訪問したときに表示されるドメイン名と一致する必要があります。一致しない場合は証明書エラーが表示されます。 www.example.com
E メールアドレス サイト管理者の E メールアドレス someone@example.com

署名を要求する署名リクエストをサードパーティに送信するか、または開発とテスト用に自分で署名することができます。自己署名証明書は、ロードバランサーと EC2 インスタンス間のバックエンド HTTPS にも使用できます。

証明書に署名するには、openssl x509 コマンドを使用します。以下の例では、以前のステップ (privatekey.pem) のプライベートキーおよび署名リクエスト (csr.pem) を使用して、365 日間有効な public.crt という名前の公開証明書を作成します。

$ openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out public.crt Signature ok subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com Getting Private key

秘密キーと公開証明書は後で使用できるようにしておきます。署名リクエストは破棄できます。必ず、プライベートキーは安全な場所に保存し、ソースコードには追加しないことをお勧めします。

Windows Server プラットフォームを使用して証明書を使用するには、PFX 形式に変換する必要があります。プライベートキーとパブリック証明書ファイルから PFX 証明書を作成するには、次のコマンドを使用します。

$ openssl pkcs12 -export -out example.com.pfx -inkey privatekey.pem -in public.crt Enter Export Password: password Verifying - Enter Export Password: password

証明書があるため、ロードバランサーで使用するために、IAM にアップロードするか、HTTPS を終了するように環境内のインスタンスを設定します。