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-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

관련 정보