> 백엔드 개발 > Golang > 내 GoLang Docker 컨테이너에 '알 수 없는 기관에서 서명된 인증서' 오류가 표시되는 이유는 무엇입니까?

내 GoLang Docker 컨테이너에 '알 수 없는 기관에서 서명된 인증서' 오류가 표시되는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-01 02:43:10
원래의
820명이 탐색했습니다.

Why Does My GoLang Docker Container Get a

Docker 컨테이너 문제: 알 수 없는 기관에서 서명한 오류 인증서

GoLang의 http.Client를 사용하여 Docker 컨테이너를 실행하면 " 알 수 없는 기관에서 서명한 인증서입니다." 이 문제는 컨테이너를 처음부터 생성하거나 Ubuntu/Alpine 이미지를 사용할 때 발생했습니다.

문제를 이해하려면 http.Client가 시스템 인증서 저장소의 TLS 구성을 사용한다는 점에 유의하는 것이 중요합니다. 컨테이너가 처음부터 생성되면 기본적으로 신뢰할 수 있는 인증서가 없습니다.

해결책:

이 문제에 대한 해결 방법은 Docker 유형에 따라 다릅니다. 사용 중인 이미지:

스크래치 이미지:

  1. 신뢰할 수 있는 인증서를 이미지에 포함하세요. 예를 들어, ca-certificates.crt 파일을 /etc/ssl/certs 디렉터리에 추가할 수 있습니다:
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]
로그인 후 복사

다단계 이미지:

  1. 빌드 중에 ca-certificates 패키지를 추가하세요. stage:
FROM golang:alpine as build
RUN apk --no-cache add ca-certificates
로그인 후 복사
  1. 빌드 단계의 인증서를 최종 이미지에 복사합니다.
FROM scratch
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=build /go/bin/app /app
ENTRYPOINT ["/app"]
로그인 후 복사

Docker 이미지에 신뢰할 수 있는 인증서를 포함합니다. , http.Client는 서버 인증서를 확인하고 Google API에 대한 HTTPS 요청을 성공적으로 보낼 수 있습니다.

위 내용은 내 GoLang Docker 컨테이너에 '알 수 없는 기관에서 서명된 인증서' 오류가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿