2.5. OpenSSL でプライベート CA を使用して CSR の証明書を発行する
システムが TLS 暗号化通信チャネルを確立できるようにするには、認証局 (CA) が有効な証明書をシステムに提供する必要があります。プライベート CA がある場合は、システムからの証明書署名要求 (CSR) に署名することにより、要求された証明書を作成できます。
前提条件
- プライベート CA が設定済みである。詳細は、OpenSSL を使用したプライベート CA の作成 セクションを参照してください。
- CSR を含むファイルがある。CSR の作成例については、「OpenSSL を使用した TLS サーバー証明書の秘密鍵と CSR の作成」 セクションを参照してください。
手順
オプション: 任意のテキストエディターを使用して、証明書に拡張を追加するための OpenSSL 設定ファイルを準備します。次に例を示します。
vim <openssl.cnf>
$ vim <openssl.cnf> [server-cert] extendedKeyUsage = serverAuth [client-cert] extendedKeyUsage = clientAuth
Copy to Clipboard Copied! 前の例は原則のみを示しており、
openssl
はすべての拡張を証明書に自動的に追加するわけではないことに注意してください。必要な拡張を CNF ファイルに追加するか、openssl
コマンドのパラメーターに追加する必要があります。x509
ユーティリティーを使用して、CSR に基づいて証明書を作成します。次に例を示します。openssl x509 -req -in <server-cert.csr> -CA <ca.crt> -CAkey <ca.key> -CAcreateserial -days 365 -extfile <openssl.cnf> -extensions <server-cert> -out <server-cert.crt>
$ openssl x509 -req -in <server-cert.csr> -CA <ca.crt> -CAkey <ca.key> -CAcreateserial -days 365 -extfile <openssl.cnf> -extensions <server-cert> -out <server-cert.crt> Signature ok subject=C = US, O = Example Organization, CN = server.example.com Getting CA Private Key
Copy to Clipboard Copied! セキュリティーを強化するには、CSR から別の証明書を作成する前に、シリアル番号ファイルを削除してください。こうすることで、シリアル番号が常に無作為になるようにします。カスタムファイル名を指定する
CAserial
オプションを省略した場合、シリアル番号のファイル名は証明書のファイル名と同じですが、その拡張子は.srl
拡張子に置き換えられます (前の例ではserver-cert.srl
)。