web-dev-qa-db-ja.com

OpenSSL、基本構成、new_certs_dir、certs

Openssl-config-fileで、これらの2つの構成パラメーターの違いと使用についての回答を検索しました。

certs         = ... # Where the issued certs are

そして

new_certs_dir = ... # default place for new certs 

OpenSSLを使用したネットワークセキュリティ O'Reillyの本でも、default-openssl-config-fileのこれら2つのパラメータを説明していますが、certsは使用されておらず、説明されていません。 opensslを使用したテストでは、すべての証明書がnew_cers_dirによって定義されたフォルダーに格納されています。

これら2つのパラメーターの違いは何ですか?そして、パラメータcertsはどこかで使用されていますか?

6
raiserle

ドキュメントに示されているように

https://www.openssl.org/docs/man1.1.0/apps/ca.html

new_certs_dirは、新しく生成された証明書を出力するためにCAによって使用されます。

ここでは証明書は使用されません。ただし、demoCAで参照される「./demoCA/certs-証明書出力ファイル」Certsは、次に示すように、証明書チェーンにも使用されません。

https://www.openssl.org/docs/man1.1.0/apps/pkcs12.html または https://www.openssl.org/docs/man1.1.0/apps /verify.html

/ etc/ssl/certsが発行された証明書のデフォルトの場所であることに注意してください。しかし、certs変数は$ dir/certsなので、。/ demoCA/certsになります。CAに固有の発行済み証明書については、全員が同意するものと思います。 CAは、公的な認証局によってまだ発行されていない証明書にチェーンされている証明書に署名している可能性があるため、これは理にかなっています。

しかし、このドキュメントはどこにありますか?設定ファイルのアーティファクトだと思います。これは、証明書内にca.pemを保持する証明書のようなオプションに使用されるため、certificate = $ certs/ca.pemとなります。

後でこの設定ファイルで使用されていたが、現在は使用されていないことに気付くまで、このまったく同じ質問があったことを漠然と覚えています。

編集:それは奇妙になります。ここのca.cの現在のバージョン: https://github.com/openssl/openssl/blob/master/apps/ca.c は証明書を参照しません。しかし、このようなはるかに古いバージョン: https://github.com/openssl/openssl/blob/d02b48c63a58ea4367a0e905979f140b7d090f86/apps/ca.c それを参照しますが、何もしません。

5
jdwolf

これについての適切なリファレンスはありませんが、私の推測では、個人的には、新しく署名された証明書をnew_certs dir、ただしCA証明書(キーではない)とより高いレベルのCA証明書をcerts dirに保持します。

それらは、openssl CAによってではなく、外部CAなどによって署名されているため、それらを区別するためです。実際には、それがあなたに合っているなら、それは組織のためだけのものでしょう。

2
Zip