Heim > Backend-Entwicklung > Golang > Warum erhält mein GoLang-Docker-Container die Fehlermeldung „Von unbekannter Stelle signiertes Zertifikat'?

Warum erhält mein GoLang-Docker-Container die Fehlermeldung „Von unbekannter Stelle signiertes Zertifikat'?

Mary-Kate Olsen
Freigeben: 2024-12-01 02:43:10
Original
815 Leute haben es durchsucht

Why Does My GoLang Docker Container Get a

Docker-Container-Problem: Von unbekannter Behörde signiertes Fehlerzertifikat

Das Ausführen eines Docker-Containers mit dem http.Client von GoLang kann zur Fehlermeldung „ Von unbekannter Stelle unterzeichnetes Zertifikat.“ Dieses Problem ist beim Erstellen eines Containers von Grund auf oder bei der Verwendung von Ubuntu/Alpine-Images aufgetreten.

Um das Problem zu verstehen, ist es wichtig zu beachten, dass http.Client die TLS-Konfiguration im Zertifikatspeicher des Systems verwendet. Wenn ein Container von Grund auf neu erstellt wird, verfügt er standardmäßig über keine vertrauenswürdigen Zertifikate.

Lösung:

Die Lösung für dieses Problem hängt vom Docker-Typ ab Bild, das Sie verwenden:

Scratch Image:

  1. Fügen Sie das Bild hinzu vertrauenswürdige Zertifikate in Ihrem Image. Sie können beispielsweise eine ca-certificates.crt-Datei zum Verzeichnis /etc/ssl/certs hinzufügen:
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]
Nach dem Login kopieren

Multi-Stage Image:

  1. Fügen Sie das ca-certificates-Paket während des Builds hinzu Phase:
FROM golang:alpine as build
RUN apk --no-cache add ca-certificates
Nach dem Login kopieren
  1. Kopieren Sie die Zertifikate aus der Build-Phase in das endgültige Image:
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

Indem Sie die vertrauenswürdigen Zertifikate in das Docker-Image einschließen , Ihr http.Client kann das Serverzertifikat überprüfen und erfolgreich HTTPS-Anfragen an die Google-API stellen.

Das obige ist der detaillierte Inhalt vonWarum erhält mein GoLang-Docker-Container die Fehlermeldung „Von unbekannter Stelle signiertes Zertifikat'?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage