HTTPS リスナーを設定する際、自己署名 CA 証明書を使用できます。 このドキュメントの手順に従って、CA証明書を生成し、作成されたCA証明書を使用してクライアント証明書に署名します。
Open SSL を使用してCA 証明書を生成する
- 次のコマンドを実行して、/rootディレクトリにcaフォルダーを作成し、caフォルダーに 4 つのサブフォルダーを作成します。
$ sudo mkdir ca $ cd ca $ sudo mkdir newcerts private conf server
- newcertsフォルダーには、CA 証明書によって署名されたデジタル証明書が保存されます。
- privateフォルダーには、CA 証明書の秘密鍵が保存されます。
- confフォルダーには、設定ファイルが保存されます。
- serverフォルダーには、サーバー証明書が保存されます。
- confディレクトリにopenssl.confファイルを作成し、次の情報を入力します。
[ ca ] default_ca = foo [ foo ] dir = /root/ca database = /root/ca/index.txt new_certs_dir = /root/ca/newcerts certificate = /root/ca/private/ca.crt serial = /root/ca/serial private_key = /root/ca/private/ca.key RANDFILE = /root/ca/private/.rand default_days = 365 default_crl_days= 30 default_md = md5 Unique_subject = No Policy = policy_any [ policy_any ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = match localityName = optional commonName = supplied emailAddress = optional
- 次のコマンドを実行して、秘密鍵を生成します。
$ cd /root/ca $ sudo openssl genrsa -out private/ca.key
秘密鍵を生成する例を以下に示します。
- 次のコマンドを実行し、プロンプトに従って必要な情報を入力します。 Enter キーを押すと、csrファイルが生成されます。
$ sudo openssl req -new -key private/ca.key -out private/ca.csr
注 Common Nameは、SLB インスタンスのドメイン名です。 - 次のコマンドを実行して、crtファイルを生成します。
$ sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt
- 次のコマンドを実行して、秘密鍵の開始シーケンス番号を設定します。シーケンス番号には、任意の4文字を使用できます。
$ sudo echo FACE > serial
- 次のコマンドを実行して、CAキーライブラリを作成します。
$ sudo touch index.txt
- 次のコマンドを実行して、クライアント証明書を削除するための証明書失効リストを作成します。
$ sudo openssl ca -gencrl -out /root/ca/private/ca.crl -crldays 7 -config "/root/ca/conf/openssl.conf"
次のレスポンスが返されます。Using configuration from /root/ca/conf/openssl.conf
クライアント証明書に署名する
- 次のコマンドを実行して、caディレクトリの下に、クライアントキーを保存するusersディレクトリを生成します。
$ sudo mkdir users
- 次のコマンドを実行して、クライアント証明書のキーを作成します。
$ sudo openssl genrsa -des3 -out /root/ca/users/client.key 1024
注 キーを作成する際、パスフレーズを入力します。 パスフレーズは、不正なアクセスから秘密鍵を保護するためのパスワードです。 入力されたパスフレーズは、このキーのパスワードになります。 - 次のコマンドを実行して、証明書署名要求のためのcsrファイルを作成します。
$ sudo openssl req -new -key /root/ca/users/client.key -out /root/ca/users/client.csr
プロンプトが表示されたら、前の手順で設定したパスフレーズを入力します。
注 チャレンジパスワードは、クライアント証明書のパスワードです。 クライアントキーのパスワードではありません。 - 次のコマンドを実行して、クライアントキーに署名します。
$ sudo openssl ca -in /root/ca/users/client.csr -cert /root/ca/private/ca.crt -keyfile /root/ca/private/ca.key -out /root/ca/users/client.crt -config "/root/ca/conf/openssl.conf"
プロンプトが表示されたら、どちらのプロンプトにもyと入力します。
- 次のコマンドを実行して、証明書をPKCS12ファイルに変換します。
$ sudo openssl pkcs12 -export -clcerts -in /root/ca/users/client.crt -inkey /root/ca/users/client.key -out /root/ca/users/client.p12
プロンプトが表示されたら、クライアントキーのパスワードを入力します。 そしてクライアント証明書のエクスポートに使用するパスワードを入力します。 これはクライアント証明書を保護するためのパスワードで、クライアント証明書をインストールするときに必要です。
- 生成されたクライアント証明書を表示するには、次のコマンドを実行します。
cd users ls