自分で証明書チェーンを作成するには?
自分自身の OCSP レスポンダをセットアップしたいと思っています。そのためには、ルート証明書とそこから生成されたいくつかの証明書が必要です。
openssl を使って自己署名証明書を作成しました。これをルート証明書として使いたいと思います。次は派生証明書を作成したいと思います。しかし、その方法についてのドキュメントが見当たりません。誰かこの情報がどこにあるか知っている人はいますか?
Edit 振り返ってみると、私の質問はまだ完全には答えられていません。問題を明確にするために、私の証明書チェーンを以下のように表現します。
ROOT -> A -> B -> C -> …
現在、ROOTとAの証明書は作れるけど、もっと長いチェーンを作る方法がわからない。
ルート証明書を作成するための私のコマンドは以下の通り。
openssl req -new -newkey rsa:1024 -nodes -out ca.csr -keyout ca.key
openssl x509 -trustout -signkey ca.key -days 365 -req -in ca.csr -out ca.pem
証明書Aはこのように作成されます。
openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer
このコマンドは暗黙のうちにルート証明書に依存しており、openssl 設定ファイルに必要な情報が含まれています。
# Create a certificate request
openssl req -new -keyout B.key -out B.request -days 365
# Create and sign the certificate
openssl ca -policy policy_anything -keyfile A.key -cert A.pem -out B.pem -infiles B.request
このコマンドは暗黙のうちにルート証明書に依存しており、openssl の設定ファイルに必要な情報が含まれています。
証明書B以降を作成するには、どのようなコマンドラインを使えばいいのでしょうか?
Edit この記事 に答えがありました。証明書B(chain A -> B)は、この2つのコマンドで作成できます。
[usr_cert]
basicConstraints=CA:TRUE # prev value was FALSE
openssl.cnfファイルも変更してみました。
0x1&
このアプローチはうまくいっているようです。