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
Freigeben: 2024-12-07 04:21:11
Original
538 Leute haben es durchsucht

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"]
Nach dem Login kopieren

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"]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage