HTTPSリスナーを設定するときは、自己署名CA証明書を使用できます。 CA証明書を使用してクライアント証明書に署名することもできます。
OpenSSLを使用したCA証明書の生成
次のコマンドを実行して、
/home
ディレクトリにcaフォルダを作成し、caフォルダの下に4つのサブフォルダを作成します。
sudo mkdir ca
cd ca
sudo mkdir newcerts private conf server
newcertsフォルダーは、CA証明書によって署名されたデジタル証明書を格納するために使用されます。
プライベートフォルダは、CA証明書の秘密鍵を格納するために使用される。
confフォルダーは、パラメーターの簡略化に使用される設定ファイルを格納するために使用されます。
サーバーフォルダーは、サーバー証明書を格納するために使用されます。
次の情報を含むopenssl.confファイルを
conf
ディレクトリに作成します。[ ca ] default_ca = foo [ foo ] dir = /home/ca database = /home/ca/index.txt new_certs_dir = /home/ca/newcerts certificate = /home/ca/private/ca.crt serial = /home/ca/serial private_key = /home/ca/private/ca.key RANDFILE = /home/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 /home/ca sudo openssl genrsa -out private/ca.key
コマンドの出力を次の図に示します。
次のコマンドを実行し、プロンプトに従って必要な情報を入力し、enterキーを押してcsrファイルを生成します。
sudo openssl req -new -key private/ca.key -out private/ca.csr
説明Common Nameは、Classic Load Balancer (CLB) インスタンスのドメイン名を指定します。
次のコマンドを実行してcrtファイルを生成します。
sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt
次のコマンドを実行して、CAキーの初期シーケンス番号を設定します。 初期シーケンス番号は任意の4文字とすることができる。 この例では、CA鍵の初期シーケンス番号はFACEである。
sudo echo FACE > serial
次のコマンドを実行して、CA キーライブラリを作成します。
sudo touch index.txt
次のコマンドを実行して、クライアント証明書を削除するための証明書失効リストを作成します。
sudo openssl ca -gencrl -out /home/ca/private/ca.crl -crldays 7 -config "/home/ca/conf/openssl.conf"
出力:
Using configuration from /home/ca/conf/openssl.conf
クライアント証明書に署名する
次のコマンドを実行して、クライアントキーを格納する
ca
ディレクトリにusers
ディレクトリを作成します。sudo mkdir users
次のコマンドを実行して、クライアントキーを作成します。
sudo openssl genrsa -des3 -out /home/ca/users/client.key 1024
説明キーを作成するときに、パスフレーズを入力して、キーが漏洩した場合の不正アクセスを防ぎます。 同じパスフレーズを2回入力します。
次のコマンドを実行して、クライアントキーのcsrファイルを作成します。
sudo openssl req -new -key /home/ca/users/client.key -out /home/ca/users/client.csr
プロンプトに従って、ステップ2で入力したパスフレーズとその他の必要な情報を入力します。
説明チャレンジパスワードは、クライアント証明書パスワードであり、クライアント鍵とは異なる。
次のコマンドを実行して、CAキーを使用してクライアントキーに署名します。
sudo openssl ca -in /home/ca/users/client.csr -cert /home/ca/private/ca.crt -keyfile /home/ca/private/ca.key -out /home/ca/users/client.crt -config "/home/ca/conf/openssl.conf"
y次の2つの操作を確認するプロンプトが表示された場合にします。
次のコマンドを実行して、証明書を PKCS12 ファイルに変換します。
sudo openssl pkcs12 -export -clcerts -in /home/ca/users/client.crt -inkey /home/ca/users/client.key -out /home/ca/users/client.p12
プロンプトに従ってクライアントキーのパスフレーズを入力し、Enterキーを押します。 次に、クライアント証明書のエクスポートに使用するパスワードを入力します。 このパスワードは、クライアント証明書を保護するために使用され、クライアント証明書をインストールするときに必要です。
次のコマンドを実行して、生成されたクライアント証明書を表示します。
cd users ls