
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