Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengendalikan Permintaan HTTPS dengan Sijil Tersuai atau Tidak Dipercayai dalam Go?

Bagaimana untuk Mengendalikan Permintaan HTTPS dengan Sijil Tersuai atau Tidak Dipercayai dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-11 12:05:10654semak imbas

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

Menghantar Permintaan HTTPS dengan Sijil dalam Go

Apabila berinteraksi dengan perkhidmatan HTTPS yang memerlukan pengesahan sijil, pembangun mungkin menghadapi ralat yang berkaitan dengan不知名的授权机构. Untuk mengatasi isu ini, Go menyediakan mekanisme untuk mengesahkan sijil pelayan menggunakan sijil CA yang dipercayai.

Untuk menyelesaikan masalah, anda perlu mendapatkan sijil CA pihak berkuasa dipercayai yang mengeluarkan sijil pelayan. Sebaik sahaja anda mempunyai sijil CA, anda boleh menambahkannya pada lapisan pengangkutan klien HTTP anda seperti yang ditunjukkan di bawah:

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)
    }
}

Selain itu, anda boleh menjana sijil CA tersuai dan menandatangani sijil anda sendiri untuk komunikasi yang selamat. Langkah berikut menggariskan cara membuat CA dan sijil anda sendiri untuk domain tertentu:

  1. Jana CA:

    openssl genrsa -out rootCA.key 4096
    openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
  2. Jana Sijil untuk Domain:

    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

Dengan mengikuti langkah ini, anda boleh mengesahkan sijil pelayan dan mewujudkan sambungan HTTPS selamat dalam aplikasi Go anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Permintaan HTTPS dengan Sijil Tersuai atau Tidak Dipercayai dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn