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
エクスポートされません。
コメントでこの部分を修正してください。
答え2
正確に何を求めているのかわかりませんが、次のステップは私にとって効果的でした。 「ca trust」を有効にしてファイルをコピーして抽出し、確認しました。
$ update-ca-trust enable
$ cp ZScalar.pem /etc/pki/ca-trust/source/anchors/
cp: overwrite ‘/etc/pki/ca-trust/source/anchors/ZScalar.pem’? yes
$ update-ca-trust extract
$ openssl verify ZScalar.crt
ZScalar.crt: OK
この手順がうまくいかない場合は、「openssl verify」コマンドの出力を公開してください。
それ以外の場合、抽出された証明書は「/etc/pki/ca-trust/extracted/openssl」または「/etc/pki/ca-trust/extracted/pem」に移動されます。
答え3
1. CA証明書取得の問題
openssl x509 -in ca.crt -noout -text |grep -i "issue"
出力は次のとおりです。
Issuer: CN=something_strings
2. /etc/pki/tls/certs/ca-bundle.crtで問題を見つけます。
grep -i "something_strings" /etc/pki/tls/certs/ca-bundle.crt
出力は次のとおりです。
something_strings
結果が得られたら、証明書が正常に追加されました。
この内容を適用するには、サーバーを再起動する必要があります。
答え4
CA証明書は、ca-trustバンドル内のシステムに存在する必要があります。 「openssl x509」コマンドは、一度に単一のPEMエンコード証明書で機能すると予想されます。デフォルトのバンドルには多くの証明書が含まれているため、最初の証明書のみが表示されます。
すべての発行者を表示:
openssl crl2pkcs7 -nocrl -certfile /etc/pki/tls/certs/ca-bundle.crt | openssl pkcs7 -print_certs | grep subject | head