Maison > développement back-end > Golang > Pourquoi mon conteneur GoLang Docker obtient-il une erreur « certificat signé par une autorité inconnue » ?

Pourquoi mon conteneur GoLang Docker obtient-il une erreur « certificat signé par une autorité inconnue » ?

Mary-Kate Olsen
Libérer: 2024-12-01 02:43:10
original
896 Les gens l'ont consulté

Why Does My GoLang Docker Container Get a

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 :

  1. Incluez les certificats de confiance dans votre image. Par exemple, vous pouvez ajouter un fichier ca-certificates.crt au répertoire /etc/ssl/certs :
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]
Copier après la connexion

Image multi-étapes :

  1. Ajouter le package ca-certificates pendant la construction étape :
FROM golang:alpine as build
RUN apk --no-cache add ca-certificates
Copier après la connexion
  1. Copiez les certificats de l'étape de construction vers l'image finale :
FROM scratch
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=build /go/bin/app /app
ENTRYPOINT ["/app"]
Copier après la connexion

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!

Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal