Problème du conteneur Docker : certificat d'erreur signé par une autorité inconnue
L'exécution d'un conteneur Docker à l'aide du http.Client de GoLang peut entraîner le message d'erreur " certificat signé par une autorité inconnue." Ce problème a été rencontré lors de la création d'un conteneur à partir de zéro ou de l'utilisation d'images Ubuntu/Alpine.
Pour comprendre le problème, il est important de noter que http.Client utilise la configuration TLS dans le magasin de certificats du système. Lorsqu'un conteneur est créé à partir de zéro, il n'a aucun certificat de confiance par défaut.
Solution :
La solution à ce problème dépend du type de Docker image que vous utilisez :
Scratch Image :
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
Image multi-étapes :
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"]
En incluant les certificats de confiance dans l'image Docker , votre http.Client pourra vérifier le certificat du serveur et envoyer avec succès des requêtes HTTPS à l'API de 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!