2017-07-18 1 views
1

J'essaie de donner quelques exemples de base pour demander des données à partir du Web, mais toutes les demandes à différents hôtes entraînent une erreur SSL: x509: certificate signed by unknown authority. Note: Je ne suis pas derrière un proxy et aucune forme d'interception de certificat n'est en cours, car l'utilisation de curl ou du navigateur fonctionne sans problème.x509 certificat signé par une autorité inconnue

L'exemple de code Je travaille actuellement avec est:

package main 

import (
    "fmt" 
    "net/http" 
    "io/ioutil" 
    "os" 
    ) 

func main() { 
    response, err := http.Get("https://google.com") 
    if err != nil { 
     fmt.Printf("%s\n", err) 
     os.Exit(1) 
    } else { 
     defer response.Body.Close() 
     contents, err := ioutil.ReadAll(response.Body) 
     if err != nil { 
      fmt.Printf("%s", err) 
      os.Exit(1) 
     } 
     fmt.Printf("%s\n", string(contents)) 
    } 
} 

Edit: le code est exécuté sur le noyau Linux Arc-4.9.37-1 LTS.

Edit 2: Apparemment /etc/ssl/certs/ca-certificates.crt avait une différence entre la version sur mon système, en supprimant le certificat et la réinstallation du paquet ca-certificates-utils manuellement, le problème a été résolu.

+3

Votre code fonctionne parfaitement sur ma machine locale. Courez-vous directement dans la machine ou dans un conteneur? – sadlil

+0

ce code fonctionne très bien dans un conteneur docker Ubuntu –

+0

Je cours la version du noyau Arch Linux 4.9.37-1-lts. Le code fonctionne correctement sur toute autre machine, mais pas sur cette machine. –

Répondre

2

D'après votre erreur, je suppose que vous utilisez Linux?

Il est probable que vous deviez installer des certificats CA sur la machine sur laquelle votre programme s'exécute.

Sur Ubuntu, vous devrez exécuter quelque chose comme ceci:

sudo apt-get install ca-certificates 
+0

Tout d'abord, je suis sur linux arc et j'ai les ca-certificates installés: 'pacaur -Qsq résultats ca-certificates' dans ' ca-ca-certificats certificats-CAcert ca-Certificats- mozilla ca-certificates-utils ' –