開發人員在以下情況下遇到錯誤使用GoLang 的http.Client 運行Docker 容器來與Google API 互動。此錯誤源自於容器環境中憑證缺乏信任的問題。
問題的出現是因為基於暫存的 Docker 映像缺少必要的可信任憑證。使用暫存映像時,開發人員必須手動將這些憑證包含在映像中。
要解決此問題,請按照以下步驟操作:
注入受信任的憑證:
用於從頭開始圖像,在您的應用程式程式碼旁邊包含 ca-certificates.crt檔案:
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
對於您只希望由分發供應商打包證書的多階段構建:
FROM golang:alpine as build RUN apk --no-cache add ca-certificates WORKDIR /go/src/app COPY . . RUN CGO_ENABLED=0 go-wrapper install -ldflags '-extldflags "-static"' FROM scratch # copy the ca-certificate.crt from the build stage COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=build /go/bin/app /app ENTRYPOINT ["/app"]
重新啟動您的容器:
注入憑證後,重新啟動 Docker 容器以套用變更。
按照以下步驟,您應該能夠成功使用Docker 容器中的 GoLang 的 http.Client 不會遇到「未知機構簽署的憑證」錯誤。
以上是如何修復 Docker 容器中 GoLang 的 `http.Client` 中的「憑證由未知機構簽署」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!