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:
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
Multi-Stage Image:
FROM golang:alpine as build RUN apk --no-cache add ca-certificates
FROM scratch COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=build /go/bin/app /app ENTRYPOINT ["/app"]
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!