SSL 인증서 문제: 로컬 발급자 인증서를 얻을 수 없습니다.

SSL 인증서 문제: 로컬 발급자 인증서를 얻을 수 없습니다.

정적 비지박스가 포함된 작은 initramfs가 있습니다. 이 initramfs의 유일한 목적은 HTTPS 서버에 파일을 다운로드/업로드하는 것입니다.

이 작업을 수행하는 데 적합한 인증서와 자격 증명이 있습니다. 하지만 명령을 실행하면 다음과 같습니다.

curl --cacert /tmp/filename.pem -T /tmp/file_to_upload -u user:pass https://Server_name/

오류가 발생했습니다.

curl: (60) SSL certificate problem: unable to get local issuer certificate

Ubuntu에서 동일한 명령과 동일한 인증서를 사용하면 모든 것이 잘 됩니다.

이 문제를 어떻게 해결할 수 있나요?

편집하다:"-k" 또는 "--insecure" 스위치를 사용하고 싶지 않습니다.

노트:openssl 또는 /etc/ssl 디렉토리를 initramfs에 넣지 않았습니다.

답변1

/etc/ssl이 없으므로 curl명령에 -k 옵션을 추가하는 것이 좋습니다.

-k, --insecure
(SSL) 이 옵션은 컬이 "안전하지 않은" SSL 연결 및 전송을 수행하도록 명시적으로 허용합니다. 모든 SSL 연결을 보호하려면 기본으로 설치된 CA 인증서 패키지를 사용해 보십시오. -k, --insecure를 사용하지 않으면 "안전하지 않은" 것으로 간주되는 모든 연결이 실패합니다.

-k를 원하지 않는 편집 내용에 따라 또 다른 옵션은 /etc/ssl/certs를 만들고 신뢰 체인을 뒷받침하는 루트 인증서를 인증서에 추가하는 것입니다. 그러나 이것이 작동하려면 openssl을 설치하거나 최소 /etc/ssl/openssl.cnf구성 파일을 설치해야 합니다.

세 번째 옵션은 필요한 모든 인증서를 "filename.pem"에 연결하여 중요도 순서대로 신뢰 체인을 완성하는 것입니다(즉, 중간 CA가 있는 경우 루트 CA가 마지막에 옵니다). 일부 소프트웨어 설정에서 작동합니다(Apache, FreeRadius, 직접 컬을 사용해 본 적이 없음).

관련 정보