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!