Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mematikan https dalam golang

Bagaimana untuk mematikan https dalam golang

PHPz
PHPzasal
2023-04-27 09:08:23908semak imbas

Apabila menggunakan bahasa Go untuk membina perkhidmatan web atau perangkak, anda selalunya perlu mengendalikan permintaan HTTPS. Dalam sesetengah kes, kita perlu mematikan HTTPS, seperti semasa menyahpepijat kod dalam persekitaran pembangunan. Artikel ini akan memperkenalkan cara untuk mematikan HTTPS menggunakan Golang.

Cara HTTPS berfungsi

Pertama, kita perlu memahami cara HTTPS berfungsi. HTTPS (Hypertext Transfer Protocol Secure) ialah protokol komunikasi dan versi HTTP yang selamat. HTTP dihantar dalam teks yang jelas, manakala HTTPS menggunakan protokol SSL/TLS untuk penghantaran yang disulitkan bagi memastikan kerahsiaan dan keselamatan semasa proses komunikasi.

Dalam HTTPS, penyulitan kunci awam/kunci peribadi digunakan untuk penghantaran antara pihak yang berkomunikasi. Pelayan menggunakan kunci persendirian untuk menyulitkan data dan menghantar kunci awam kepada pelanggan. Selepas menerima kunci awam, pelanggan menggunakan kunci awam untuk menyahsulit data. Oleh itu, hanya pelayan yang memegang kunci peribadi boleh menyulitkan data, dan pelanggan hanya boleh menggunakan kunci awam untuk menyahsulit penghantaran data komunikasi adalah sangat selamat.

Seterusnya, kita akan membincangkan cara mematikan HTTPS di Golang.

Matikan HTTPS

Proses mematikan HTTPS di Golang agak mudah, anda hanya perlu berhenti menggunakan protokol TLS. Sebelum memulakan perkhidmatan HTTP, kami selalunya perlu menjana konfigurasi tls.Config. Oleh itu, hanya alih keluar konfigurasi tls.Config ini untuk mematikan HTTPS.

http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello, Golang!"))
})

// 生成 SSL 配置,如果想要关闭 HTTPS,只需注释掉以下代码即可 
config := &tls.Config{
    MinVersion: tls.VersionTLS12,
    CipherSuites: []uint16{
        tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
        tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
        tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
    },
}

server := &http.Server{
    Addr:      "0.0.0.0:8443",
    TLSConfig: config,
}

// 使用 ListenAndServeTLS 启动 HTTPS 服务,如果要关闭 HTTPS,则改成 ListenAndServe 即可
log.Fatal(server.ListenAndServeTLS("server.crt", "server.key"))

Dalam kod di atas, kita dapat melihat bahawa dua parameter server.crt dan server.key dihantar dalam panggilan kaedah listenAndServeTLS. Kedua-dua parameter ini ialah kunci awam dan kunci peribadi yang digunakan untuk mencipta sijil SSL, yang boleh mendayakan HTTPS. Sekiranya tiada fail sijil, cuma tukar kaedah kepada ListenAndServe untuk mematikan HTTPS.

Nota

  • Jangan gunakan penyulitan SSL untuk menghantar data sensitif tanpa fail sijil. Dalam persekitaran pengeluaran, protokol HTTP tradisional digunakan terutamanya, digabungkan dengan mekanisme keselamatan lain, seperti menetapkan IP akses, port, Token, dll. untuk kawalan keselamatan.
  • Mematikan HTTPS boleh mengurangkan beban pada perkhidmatan web, tetapi ia juga akan mengurangkan keselamatan akses. Oleh itu, anda perlu memilih sama ada untuk mematikan HTTPS mengikut situasi sebenar.

Ringkasan

Artikel ini memperkenalkan cara untuk mematikan HTTPS di Golang. Perlu diingatkan bahawa penyulitan SSL tidak boleh digunakan untuk menghantar data sensitif tanpa fail sijil Dalam persekitaran pengeluaran, ia perlu digabungkan dengan mekanisme keselamatan lain untuk kawalan keselamatan. Di samping itu, apabila menggunakannya, anda perlu memilih sama ada untuk mematikan HTTPS mengikut situasi sebenar.

Atas ialah kandungan terperinci Bagaimana untuk mematikan https dalam golang. 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