Rumah >pembangunan bahagian belakang >Golang >Ralat: Data tidak disulitkan diterima selepas permintaan SSL
Editor PHP Baicao kadangkala menghadapi mesej ralat biasa semasa pembangunan rangkaian: "Ralat: Data tidak disulitkan diterima selepas permintaan SSL". Mesej ralat ini biasanya muncul apabila menggunakan protokol HTTPS untuk penghantaran data, menunjukkan bahawa data tidak disulitkan. Isu ini boleh menyebabkan kebocoran data atau gangguan, jadi ia perlu ditangani dengan segera. Dalam artikel ini, kami akan memperkenalkan punca dan penyelesaian ralat ini secara terperinci untuk membantu pembangun menyelesaikan masalah ini dengan lancar.
Saya telah membuka sambungan tcp ke pelayan pangkalan data menggunakan kaedah berikut:
conn, err := net.dial("tcp", "localhost:5432")
Saya berjaya selepas menjalankan kod ini:
_, err = conn.Write([]byte(query)) if err != nil { fmt.Printf("Query failed: %v\n", err) return // Read the response and print the result in table view buf := make([]byte, 50000) n, err := conn.Read(buf) if err != nil { fmt.Printf("Failed to read response: %v\n", err) return } fmt.Printf("Response received: %s\n", string(buf[:n]))
Ia mencetak: Balasan diterima: n
Fail log pelayan menunjukkan:
2023-02-22 22:59:49.834 pkt [54802] fatal: ssl 请求后收到未加密的数据
2023-02-22 22:59:49.834 pkt [54802] 详细信息:这可能是客户端软件错误或尝试中间人攻击的证据。
Secara lalai, pelayan postgresql memerlukan semua pelanggannya menggunakan sambungan yang disulitkan ssl, jadi ia akan sentiasa menolak permintaan anda.
Untuk tujuan ujian/pembangunan dan menyedari bahawa sambungan anda tidak akan selamat, terdapat beberapa helah yang boleh anda gunakan untuk membetulkannya:
tlsconfig := &tls.config{ insecureskipverify: true, } conn, err := tls.dial("tcp", "localhost:5432", tlsconfig)
database/sql
包,它为您抽象了所有这些数据库供应商的具体情况。将 sslmode
tetapkan kepada orang kurang upaya jika boleh. connstr := "user=myuser password=mypassword dbname=mydb host=localhost sslmode=disable" db, err := sql.open("postgres", connstr) if err != nil { fmt.printf("failed to connect to server: %v\n", err) return } defer db.close()
data
目录中找到 pg_hba.conf
dan tambah baris berikut untuk sentiasa mempercayai localhost anda: host postgres postgres 127.0.0.1/32 trust
Andaikan nama pengguna ialah postgres
data
目录中找到 postgres.conf
文件,并将 ssl
参数设置为 off
dalam postgresql. Perlu diingat bahawa semua konfigurasi ini masih akan menjadikan sambungan anda tidak selamat dan terdedah kepada serangan.
Untuk membuat sambungan ssl dengan betul, anda perlu menyediakan sijil. Intisari ini sepatutnya membantu.
Atas ialah kandungan terperinci Ralat: Data tidak disulitkan diterima selepas permintaan SSL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!