Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengesahkan Sijil Pelayan dalam Permintaan HTTPS Menggunakan Go?

Bagaimanakah Saya Boleh Mengesahkan Sijil Pelayan dalam Permintaan HTTPS Menggunakan Go?

Linda Hamilton
Lepaskan: 2024-12-11 07:14:12
asal
743 orang telah melayarinya

How Can I Verify Server Certificates in HTTPS Requests Using Go?

Sahkan Sijil Pelayan dalam Permintaan HTTPS dengan Golang

Apabila mengakses tapak web atau perkhidmatan HTTPS, aplikasi anda mungkin menghadapi ralat sijil SSL jika kepercayaan setempat anda kedai tidak termasuk pihak berkuasa sijil (CA) yang mengeluarkan sijil pelayan. Jika anda ingin mewujudkan sambungan HTTPS selamat tanpa mengabaikan pengesahan sijil, artikel ini menyediakan penyelesaian menggunakan perpustakaan klien HTTP Go.

Untuk mengabaikan pengesahan sijil dan melumpuhkan pemeriksaan sijil, anda boleh menggunakan coretan kod berikut:

tr := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}

client := &http.Client{Transport: tr}
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini tidak disyorkan untuk persekitaran pengeluaran kerana ia boleh menimbulkan keselamatan risiko.

Mengesahkan Sijil Pelayan

Untuk mengesahkan sijil pelayan, anda perlu menambah sijil CA pada konfigurasi pengangkutan anda. Di bawah ialah contoh:

package main

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)
    }
}
Salin selepas log masuk

Menjana Sijil untuk Pelayan Anda

Jika anda tidak mempunyai sijil CA, anda boleh menjana sijil bersama-sama sijil untuk anda pelayan menggunakan arahan berikut:

  1. Jana CA:
openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
Salin selepas log masuk
  1. Jana sijil untuk domain anda, yang ditandatangani oleh CA anda:
openssl genrsa -out secure.domain.com.key 2048
openssl req -new -key secure.domain.com.key -out secure.domain.com.csr
# In answer to question `Common Name (e.g. server FQDN or YOUR name) []:` you should set `secure.domain.com` (your real domain name)
openssl x509 -req -in secure.domain.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -days 365 -out secure.domain.com.crt
Salin selepas log masuk

Dengan melengkapkan langkah ini, anda akan mempunyai klien HTTP yang dikonfigurasikan yang mengesahkan sijil pelayan dalam Go. Ini memastikan komunikasi HTTPS selamat dengan pelayan yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Sijil Pelayan dalam Permintaan HTTPS Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan