Heim >Backend-Entwicklung >Golang >Wie behebe ich den Fehler „Von unbekannter Stelle signiertes Zertifikat' in GoLang Docker-Containern?

Wie behebe ich den Fehler „Von unbekannter Stelle signiertes Zertifikat' in GoLang Docker-Containern?

DDD
DDDOriginal
2024-12-07 04:21:11608Durchsuche

How to Fix

Behebung des Fehlers „Zertifikat von unbekannter Stelle signiert“ im Docker-Container für den GoLang-HTTP-Client

Beim Ausführen eines Docker-Containers für den Zugriff auf die Google-API Wenn Sie den http.Client von GoLang verwenden, kann die Fehlermeldung „Zertifikat von unbekannter Stelle signiert“ auftreten. Dieses Problem tritt auf, wenn dem Container die erforderlichen vertrauenswürdigen Zertifikate fehlen, um das Zertifikat des API-Servers zu überprüfen.

Scratch-Container

Bei einem SCRATCH-Container ist es wichtig, die vertrauenswürdigen Zertifikate einzuschließen im Container neben Ihrer Bewerbung. Um dies zu erreichen, fügen Sie die Datei ca-certificates.crt direkt zum Container hinzu:

FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]

Mehrstufiger Build

Wenn Sie einen mehrstufigen Build verwenden, Sie können vom Distributionsanbieter gepackte Zertifikate nutzen, indem Sie die Docker-Datei ändern:

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"]

Durch die Einbindung dieser Änderungen stellen Sie die bereit Container mit den erforderlichen Zertifikaten, um eine sichere Verbindung herzustellen und den Fehler „Von unbekannter Stelle signiertes Zertifikat“ zu beseitigen, wodurch erfolgreiche GoLang-HTTP-Client-Interaktionen mit der Google-API ermöglicht werden.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Von unbekannter Stelle signiertes Zertifikat' in GoLang Docker-Containern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn