ホームページ > バックエンド開発 > Golang > Go でカスタム証明書または信頼できない証明書を使用した HTTPS リクエストを処理する方法

Go でカスタム証明書または信頼できない証明書を使用した HTTPS リクエストを処理する方法

Mary-Kate Olsen
リリース: 2024-12-11 12:05:10
オリジナル
598 人が閲覧しました

How to Handle HTTPS Requests with Custom or Untrusted Certificates in Go?

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 と証明書を作成する方法の概要を示しています:

  1. CA の生成:

    openssl genrsa -out rootCA.key 4096
    openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
    ログイン後にコピー
  2. の証明書を生成しますドメイン:

    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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート