4.2. 認証局の作成と証明書への署名

次の手順を使用して、ssl.cert および ssl.key という名前の証明書ファイルとプライマリーキーファイルを作成します。

4.2.1. 認証局の作成

認証局 (CA) を作成するには、次の手順を使用します。

手順

  1. 次のコマンドを入力して、ルート CA キーを生成します。

    $ openssl genrsa -out rootCA.key 2048
  2. 次のコマンドを入力して、ルート CA 証明書を生成します。

    $ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
  3. サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。

    Country Name (2 letter code) [XX]:IE
    State or Province Name (full name) []:GALWAY
    Locality Name (eg, city) [Default City]:GALWAY
    Organization Name (eg, company) [Default Company Ltd]:QUAY
    Organizational Unit Name (eg, section) []:DOCS
    Common Name (eg, your name or your server's hostname) []:quay-server.example.com

4.2.2. 証明書への署名

証明書に署名するには、次の手順を使用します。

手順

  1. 次のコマンドを入力してサーバーキーを生成します。

    $ openssl genrsa -out ssl.key 2048
  2. 次のコマンドを入力して、署名リクエストを生成します。

    $ openssl req -new -key ssl.key -out ssl.csr
  3. サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。

    Country Name (2 letter code) [XX]:IE
    State or Province Name (full name) []:GALWAY
    Locality Name (eg, city) [Default City]:GALWAY
    Organization Name (eg, company) [Default Company Ltd]:QUAY
    Organizational Unit Name (eg, section) []:DOCS
    Common Name (eg, your name or your server's hostname) []:quay-server.example.com
  4. 以下のようにサーバーのホスト名を指定して、設定ファイルの openssl.cnf を作成します。

    openssl.cnf

    [req]
    req_extensions = v3_req
    distinguished_name = req_distinguished_name
    [req_distinguished_name]
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = quay-server.example.com
    IP.1 = 192.168.1.112

  5. 設定ファイルを使用して、証明書 ssl.cert を生成します。

    $ openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnf