우분투는 Sectigo 인증서를 확인할 수 없습니다

우분투는 Sectigo 인증서를 확인할 수 없습니다

고객을 위해 관리하는 서버에서는 어떤 애플리케이션도 특정 HTTPS URL에 액세스할 수 없습니다. 예:

$ wget https://open-data.bielefeld.de/sites/default/files/alters_und_geschlechtsstruktur_ende2011bismitte2022.csv
--2022-12-21 15:59:58--  https://open-data.bielefeld.de/sites/default/files/alters_und_geschlechtsstruktur_ende2011bismitte2022.csv
Resolving open-data.bielefeld.de (open-data.bielefeld.de)... 194.8.223.72
Connecting to open-data.bielefeld.de (open-data.bielefeld.de)|194.8.223.72|:443... connected.
ERROR: cannot verify open-data.bielefeld.de's certificate, issued by ‘CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB’:
  Unable to locally verify the issuer's authority.
To connect to open-data.bielefeld.de insecurely, use `--no-check-certificate'.

여러 프로그램(R 및 Python 스크립트 포함)에 이 문제가 있지만 데스크톱 브라우저에서는 문제 없이 URL에 액세스할 수 있습니다. 루트 인증서나 인증서 체인에 문제가 있다고 가정합니다. 서버는 Ubuntu 20.04 LTS를 실행 중이며 모든 패키지가 최신 상태입니다. 이 문제의 원인은 무엇이며, 제가 직접 (안전하고 간단하게) 해결할 수 있는 방법이 있습니까?

답변1

실제로 인증서가 누락되었습니다. 루트 인증서가 아니라 중간 인증서입니다. HTTPS 서버는 응답과 함께 체인의 모든 인증서(루트 제외)를 보내야 하지만 일부 서버는 그렇지 않습니다. 웹 브라우저는 AIA(Authority Information Access) 추적*이라는 기술을 사용하여 이에 대처할 수 있지만 다른 많은 클라이언트는 이를 구현하지 않습니다.

Steffen Ulrich가 자신의 의견에서 언급했듯이 누락된 인증서를 찾아서 시스템에 설치할 수 있습니다.

먼저 인증서를 받으세요. 사이트를 확인하여 수동으로 수행할 수 있습니다.SSLLabs, 누락된 인증서의 지문을 검색합니다. 인증서는 PEM 형식(BEGIN 및 END CERTIFICATE로 인코딩된 base64)이어야 합니다. 또한 수동으로 인증서를 가져올 수 있다는 사실을 깨닫기 전에 AIA를 통해 인증서를 가져오는 스크립트도 작성했습니다.https://github.com/jdmansour/fetch-intermediate-certs

그런 다음 Ubuntu/Debian에서 인증서를 가져오려면 해당 인증서를 /usr/share/ca-certificates/extra(필요한 경우 디렉터리 생성) 에 넣고 sudo dpkg-reconfigure ca-certificates. 시스템 업데이트 시 새 인증서를 신뢰해야 하는지 묻는 메시지가 표시됩니다. 원하는 옵션을 선택하세요. 기본값은 "예"입니다. 다음 화면에서 새 인증서를 활성화할 수 있습니다. OpenSSL을 사용하는 대부분의 도구는 즉시 이를 선택해야 합니다.


*) 내가 아는 한, Firefox는 AIA를 구현하지 않지만 어떻게든 AIA에서도 작동합니다.

관련 정보