Maison >développement back-end >Golang >Comment résoudre les erreurs « certificat signé par une autorité inconnue » lors de l'utilisation de HTTP.Client de GoLang dans un conteneur Docker ?

Comment résoudre les erreurs « certificat signé par une autorité inconnue » lors de l'utilisation de HTTP.Client de GoLang dans un conteneur Docker ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-06 12:10:251027parcourir

How to Resolve

Conteneur Docker avec GoLang HTTP. Le client rencontre une erreur d'autorité de certification

Dans une tentative de communication avec l'API Google, un individu a construit un Docker conteneur utilisant GoLang. Initialement, un conteneur SCRATCH a été utilisé, ce qui a entraîné l'erreur « certificat signé par une autorité inconnue ». Lors du passage à Ubuntu/Alpine, l'erreur a persisté.

Le problème est dû à l'absence de certificats de confiance dans le conteneur. Pour remédier à cela, deux approches peuvent être adoptées :

Scratch Image

Incorporer des certificats de confiance avec l'application :

FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]

Construction en plusieurs étapes

Utiliser les certificats fournis par la distribution fournisseur :

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"]

En employant ces méthodes, le conteneur possédera les certificats requis, permettant une communication transparente avec l'API Google.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn