拡張機能付きのOpenSSL署名リクエスト


8

開発環境に小さな自己署名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_httpopenssl req -text -noout -in myrequest.csrすべてを使用してリクエストを見ると、完璧に見えます。

しかし、リクエストに署名した後、「X509v3拡張キーの使用」および「X509v3サブジェクトの別名」セクションがなくなりました。この問題を解決-extfile myCustomOpenssl.cnf -reqexts server0_httpするために、への署名呼び出しのパラメーターも指定しましたopenssl

それは予想される動作ですか?私は常にcsr-fileだけで、要求に応じて、つまりすべてのセクションで証明書を作成するのに十分である必要があると思っていました。現在の私のシステムの動作方法は、セクションが欠落している証明書を取得することです。証明書を希望どおりに取得するには、リクエストの作成に使用したopenssl構成ファイルのcsr-fileおよび対応するセクションを提供する必要があります。これは私の小さなセットアップでは問題ありませんが、私がより大きなCAになると、これはかなり面倒になります。それはそのようになるはずですか、それともopensslを間違って使用していますか?

回答:


7

それを見つけた!私が説明したのは、opensslの通常の予想される動作です。デフォルトでは、カスタム拡張機能は証明書にコピーされません。

opensslに、要求された拡張機能を証明書にコピーさせるにcopy_extensions = copyは、署名用に指定する必要があります。これは、バニラインストールでは、この行をのセクションdefault_CAに追加する必要があることを意味しopenssl.cnfます。

openssl.cnf(少なくとも)CentOSにラインを持つ船はすでにコメントとして含まれており、警告「注意して使用することを」運ぶされていること。注意していない場合、要求者はこれを悪用してCA証明書を発行する可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.