github.com/snowflakedb/gosnowflake@v1.9.0/cmd/verifycert/verifycert.go (about)

     1  // Example: Verify SSL/TLS certificate with OCSP revocation check
     2  package main
     3  
     4  import (
     5  	"bytes"
     6  	"flag"
     7  	"io/ioutil"
     8  	"log"
     9  	"net/http"
    10  	"os"
    11  	"time"
    12  
    13  	sf "github.com/snowflakedb/gosnowflake"
    14  )
    15  
    16  func main() {
    17  	var targetURL = flag.String("url", "", "target host name, e.g., https://myaccount.snowflakecomputing.com/")
    18  	flag.Parse()
    19  	if *targetURL == "" {
    20  		flag.Usage()
    21  		os.Exit(2)
    22  	}
    23  	c := &http.Client{
    24  		Transport: sf.SnowflakeTransportTest,
    25  		Timeout:   30 * time.Second,
    26  	}
    27  	req, err := http.NewRequest("GET", *targetURL, bytes.NewReader(nil))
    28  	if err != nil {
    29  		log.Fatalf("fail to create a request. err: %v", err)
    30  	}
    31  	res, err := c.Do(req)
    32  	if err != nil {
    33  		log.Fatalf("failed to GET contents. err: %v", err)
    34  	}
    35  	defer res.Body.Close()
    36  	if res.StatusCode != http.StatusOK {
    37  		log.Fatalf("failed to get 200: %v", res.StatusCode)
    38  	}
    39  	_, err = ioutil.ReadAll(res.Body)
    40  	if err != nil {
    41  		log.Fatalf("failed to read content body for %v", targetURL)
    42  	}
    43  	log.Println("SUCCESS. Certificate Revocation Check has been completed.")
    44  }