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