HTTPS リスナーを設定する際、自己署名 CA 証明書を使用できます。 このドキュメントの手順に従って、CA証明書を生成し、作成されたCA証明書を使用してクライアント証明書に署名します。

Open SSL を使用してCA 証明書を生成する

  1. 次のコマンドを実行して、/rootディレクトリにcaフォルダーを作成し、caフォルダーに 4 つのサブフォルダーを作成します。
     $ sudo mkdir ca
     $ cd ca
     $ sudo mkdir newcerts private conf server
    • newcertsフォルダーには、CA 証明書によって署名されたデジタル証明書が保存されます。
    • privateフォルダーには、CA 証明書の秘密鍵が保存されます。
    • confフォルダーには、設定ファイルが保存されます。
    • serverフォルダーには、サーバー証明書が保存されます。
  2. 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
  3. 次のコマンドを実行して、秘密鍵を生成します。
    $ cd /root/ca
     $ sudo openssl genrsa -out private/ca.key

    秘密鍵を生成する例を以下に示します。

  4. 次のコマンドを実行し、プロンプトに従って必要な情報を入力します。 Enter キーを押すと、csrファイルが生成されます。
    $ sudo openssl req -new -key private/ca.key -out private/ca.csr
    Common Nameは、SLB インスタンスのドメイン名です。
  5. 次のコマンドを実行して、crtファイルを生成します。
    $ sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt
  6. 次のコマンドを実行して、秘密鍵の開始シーケンス番号を設定します。シーケンス番号には、任意の4文字を使用できます。
    $ sudo echo FACE > serial
  7. 次のコマンドを実行して、CAキーライブラリを作成します。
    $ sudo touch index.txt
  8. 次のコマンドを実行して、クライアント証明書を削除するための証明書失効リストを作成します。
    $ 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

クライアント証明書に署名する

  1. 次のコマンドを実行して、caディレクトリの下に、クライアントキーを保存するusersディレクトリを生成します。
    $ sudo mkdir users
  2. 次のコマンドを実行して、クライアント証明書のキーを作成します。
    $ sudo openssl genrsa -des3 -out /root/ca/users/client.key 1024
    キーを作成する際、パスフレーズを入力します。 パスフレーズは、不正なアクセスから秘密鍵を保護するためのパスワードです。 入力されたパスフレーズは、このキーのパスワードになります。
  3. 次のコマンドを実行して、証明書署名要求のためのcsrファイルを作成します。
    $ sudo openssl req -new -key /root/ca/users/client.key -out /root/ca/users/client.csr

    プロンプトが表示されたら、前の手順で設定したパスフレーズを入力します。

    チャレンジパスワードは、クライアント証明書のパスワードです。 クライアントキーのパスワードではありません。
  4. 次のコマンドを実行して、クライアントキーに署名します。
    $ 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と入力します。

  5. 次のコマンドを実行して、証明書をPKCS12ファイルに変換します。
    $ sudo openssl pkcs12 -export -clcerts -in /root/ca/users/client.crt -inkey /root/ca/users/client.key -out /root/ca/users/client.p12

    プロンプトが表示されたら、クライアントキーのパスワードを入力します。 そしてクライアント証明書のエクスポートに使用するパスワードを入力します。 これはクライアント証明書を保護するためのパスワードで、クライアント証明書をインストールするときに必要です。

  6. 生成されたクライアント証明書を表示するには、次のコマンドを実行します。
     cd users
     ls