Go で証明書を使用した HTTPS リクエストを送信する
証明書の検証を必要とする HTTPS サービスと対話するとき、開発者は不知名に関連するエラーが発生する可能性があります。授权机构。この問題を解決するために、Go は信頼できる CA 証明書を使用してサーバー証明書を検証するメカニズムを提供します。
問題を解決するには、サーバー証明書を発行した信頼できる機関の CA 証明書を取得する必要があります。 CA 証明書を取得したら、以下に示すように HTTP クライアントのトランスポート層に追加できます。
import ( "crypto/tls" "io/ioutil" "log" "net/http" "crypto/x509" ) func main() { caCert, err := ioutil.ReadFile("rootCA.crt") if err != nil { log.Fatal(err) } caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ RootCAs: caCertPool, }, }, } _, err := client.Get("https://secure.domain.com") if err != nil { panic(err) } }
さらに、安全な通信のためにカスタム CA 証明書を生成し、独自の証明書に署名することもできます。次の手順は、特定のドメインに対して独自の CA と証明書を作成する方法の概要を示しています:
CA の生成:
openssl genrsa -out rootCA.key 4096 openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
の証明書を生成しますドメイン:
openssl genrsa -out secure.domain.com.key 2048 openssl req -new -key secure.domain.com.key -out secure.domain.com.csr openssl x509 -req -in secure.domain.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -days 365 -out secure.domain.com.crt
次の手順に従って、サーバー証明書を検証し、Go アプリケーションで安全な HTTPS 接続を確立できます。
以上がGo でカスタム証明書または信頼できない証明書を使用した HTTPS リクエストを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。