開発環境に小さな自己署名CAを設定しました。プロパティの異なるさまざまなサーバー証明書を作成したいと思います。私のアプローチは、サーバーごとに特定の拡張セクションを作成することです。次のようなセクションを含む1つの大きなopenssl.cnfがあります。
[ server0_http ]
nsCertType = server
nsComment = "HTTP server0"
basicConstraints=CA:FALSE
extendedKeyUsage=serverAuth
subjectAltName=@server0_http_altnames
[ server0_http_altnames ]
URI.1 = https://server.domain.tld
URI.2 = http://server.domain.tld
IP.1 = 1.2.3.4
DNS.1 = server.doamin.tld
次に、使用してcsrを作成するときにopenssl
、パラメーターを使用します-config myCustomOpenssl.cnf -reqexts server0_http
。openssl req -text -noout -in myrequest.csr
すべてを使用してリクエストを見ると、完璧に見えます。
しかし、リクエストに署名した後、「X509v3拡張キーの使用」および「X509v3サブジェクトの別名」セクションがなくなりました。この問題を解決-extfile myCustomOpenssl.cnf -reqexts server0_http
するために、への署名呼び出しのパラメーターも指定しましたopenssl
。
それは予想される動作ですか?私は常にcsr-fileだけで、要求に応じて、つまりすべてのセクションで証明書を作成するのに十分である必要があると思っていました。現在の私のシステムの動作方法は、セクションが欠落している証明書を取得することです。証明書を希望どおりに取得するには、リクエストの作成に使用したopenssl構成ファイルのcsr-fileおよび対応するセクションを提供する必要があります。これは私の小さなセットアップでは問題ありませんが、私がより大きなCAになると、これはかなり面倒になります。それはそのようになるはずですか、それともopensslを間違って使用していますか?