update-ca-trust 抽出は、ca-バンドルに証明書を追加しません。

update-ca-trust 抽出は、ca-バンドルに証明書を追加しません。
CentOS Linux release 7.6.1810 (Core)
Kernel 5.1.11-1.el7.elrepo.x86_64

証明書ファイルを入れました。/etc/pki/ca-trust/source/anchors

ファイルは次のようになります。

-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIQeqkpty5ghoxP8YfCRe+7qjANBgkqhkiG9w0BAQUFADBP
some strings
FnpKVwAq6UcYOu4AoXweaqOOMsLNSw==
-----END CERTIFICATE-----

その後、update-ca-trust extractバンドルファイルで私の証明書を見ることができると予想しましたが、/etc/pki/tls/certs/ca-bundle.crtその中に新しいものはありません。そしてls -al最新の編集時間を見せるので今ではなく2ヶ月前に変更されました。

最初はファイルでこれを試しました.crt。ただし、名前を変更しても問題は解決しませんでした.crt。抽出する前に.pem試してみましたが、役に立ちませんでした。それについて何も言わなかった。update-ca-trust enableupdate-ca-trust force-enable/var/log/messages

問題を解決するにはどうすればよいですか?

ベストアンサー1

長い話を短く

update-ca-trust成功しない限り、証明書ファイルは次の場所に抽出されません。ca-bundle.crt

openssl x509 -noout -text -in <cert_file> | grep --after-context=2 "X509v3 Basic Constraints" | grep "CA:TRUE"

私はこの問題を解決するために数時間を費やしました。その根は、次のX.509拡張にあります。基本制約証明書がCAに属しているかどうかを示すために使用されます。

私のおおよその結果:

  1. このupdate-ca-bundleツールは実際にはシェルスクリプトなので、内部で何が起こっているのかを簡単に確認できます。
  2. スクリプトはp11-kit異なるフィルタを使用し、異なるバンドルファイルを生成するたびにユーティリティを複数回呼び出します。
  3. これは実際にca-bundle.crtフィルタを使用してtls-ca-bundle.pem作成されたファイルへのリンクです。したがって、「CA証明書」を除くすべての証明書は無視されます。p11-kitca-anchors
  4. 証明書がCAであるかどうかは、次の要素によって決定されます。基本制約X.509拡張。これは証明書をCAの一部としてマークします。
  5. 次のコマンドを使用して、すべてのX.509拡張を一覧表示できます。openssl x509 -noout -text -in <cert_file>
  6. したがって、CA の一部としてマークされていない証明書ファイルはすべてフィルタ処理され、必須ファイルp11-kitca-bundle.crtエクスポートされません。

コメントでこの部分を修正してください。

おすすめ記事