首頁 > 後端開發 > Golang > 如何解決在 Docker 容器中使用 GoLang 的 HTTP.Client 時出現「由未知機構簽署的憑證」錯誤?

如何解決在 Docker 容器中使用 GoLang 的 HTTP.Client 時出現「由未知機構簽署的憑證」錯誤?

Barbara Streisand
發布: 2024-12-06 12:10:25
原創
1032 人瀏覽過

How to Resolve

使用GoLang HTTP.Client 的Docker 容器遇到憑證授權單位錯誤

在嘗試與Google API 通訊時,有人建立了一個Docker使用GoLang 的容器。最初,使用了 SCRATCH 容器,導致錯誤「憑證由未知機構簽署」。切換到 ubuntu/alpine 後,錯誤仍然存在。

這個問題的出現​​是由於容器內缺少可信證書。要修正此問題,可以採用兩種方法:

Scratch Image

將受信任的證書與應用程式合併:

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 --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=build /go/bin/app /app
ENTRYPOINT ["/app"]
登入後複製

透過採用這些方法,容器將擁有必要的證書,從而允許與Google API無縫通訊。

以上是如何解決在 Docker 容器中使用 GoLang 的 HTTP.Client 時出現「由未知機構簽署的憑證」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板