Heim >Backend-Entwicklung >Golang >Wie behebe ich „Von unbekannter Autorität signiertes Zertifikat'-Fehler in GoLangs „http.Client' in Docker-Containern?
Entwickler stoßen auf einen Fehler, wenn Ausführen eines Docker-Containers mit GoLangs http.Client, um mit der Google API zu interagieren. Dieser Fehler ist auf ein Problem zurückzuführen, bei dem Zertifikate in der Containerumgebung nicht vertrauenswürdig sind.
Das Problem tritt auf, weil Scratch-basierten Docker-Images die erforderlichen vertrauenswürdigen Zertifikate fehlen. Bei Verwendung von Scratch-Images müssen Entwickler diese Zertifikate manuell in das Image einfügen.
Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:
Vertrauenswürdige Zertifikate einfügen:
Fügen Sie für Scratch-Bilder das hinzu ca-certificates.crt-Datei neben Ihrem Anwendungscode:
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
Für mehrstufige Builds, bei denen Sie nur vom Distributionsanbieter gepackte Zertifikate wünschen:
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"]
Starten Sie Ihr neu Container:
Sobald die Zertifikate eingefügt wurden, starten Sie Ihren Docker-Container neu, um die Änderungen zu übernehmen.
Wenn Sie diese Schritte befolgen, sollten Sie in der Lage sein, sie erfolgreich zu verwenden GoLangs http.Client in Ihrem Docker-Container, ohne dass der Fehler „Von unbekannter Behörde signiertes Zertifikat“ auftritt.
Das obige ist der detaillierte Inhalt vonWie behebe ich „Von unbekannter Autorität signiertes Zertifikat'-Fehler in GoLangs „http.Client' in Docker-Containern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!