L'éditeur PHP Baicao rencontre parfois un message d'erreur courant lors du développement du réseau : "Erreur : données non chiffrées reçues après requête SSL". Ce message d'erreur apparaît généralement lors de l'utilisation du protocole HTTPS pour la transmission de données, indiquant que les données ne sont pas cryptées. Ce problème pourrait entraîner une fuite ou une falsification de données, il doit donc être résolu rapidement. Dans cet article, nous présenterons en détail la cause et la solution de cette erreur pour aider les développeurs à résoudre ce problème en douceur.
J'ai ouvert une connexion tcp au serveur de base de données en utilisant la méthode suivante :
conn, err := net.dial("tcp", "localhost:5432")
J'ai réussi après avoir exécuté ce code :
_, 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]))
Il imprime : Réponse reçue : n
Le fichier journal du serveur indique :
2023-02-22 22:59:49.834 pkt [54802] fatal: ssl 请求后收到未加密的数据
2023-02-22 22:59:49.834 pkt [54802] 详细信息:这可能是客户端软件错误或尝试中间人攻击的证据。
Par défaut, le serveur postgresql exige que tous ses clients utilisent des connexions cryptées SSL, il rejettera donc toujours votre demande.
À des fins de test/développement et en réalisant que votre connexion ne sera pas sécurisée, vous pouvez utiliser quelques astuces pour résoudre ce problème :
tlsconfig := &tls.config{ insecureskipverify: true, } conn, err := tls.dial("tcp", "localhost:5432", tlsconfig)
database/sql
包,它为您抽象了所有这些数据库供应商的具体情况。将 sslmode
réglé sur désactivé si possible. 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
et ajoutez la ligne suivante pour toujours faire confiance à votre localhost : host postgres postgres 127.0.0.1/32 trust
Supposons que le nom d'utilisateur soit postgres
data
目录中找到 postgres.conf
文件,并将 ssl
参数设置为 off
dans postgresql. Gardez à l’esprit que toutes ces configurations rendront toujours votre connexion non sécurisée et vulnérable aux attaques.
Pour créer correctement une connexion SSL, vous devez configurer un certificat. Cet aperçu devrait aider.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!