Fehler: Nach SSL-Anfrage wurden unverschlüsselte Daten empfangen

WBOY
Freigeben: 2024-02-08 23:00:35
nach vorne
596 Leute haben es durchsucht

错误:SSL 请求后收到未加密的数据

Der PHP-Editor Baicao stößt während der Netzwerkentwicklung manchmal auf eine häufige Fehlermeldung: „Fehler: Nach SSL-Anfrage empfangene unverschlüsselte Daten“. Diese Fehlermeldung erscheint normalerweise bei Verwendung des HTTPS-Protokolls zur Datenübertragung und weist darauf hin, dass die Daten nicht verschlüsselt sind. Dieses Problem könnte zu Datenlecks oder -manipulationen führen und muss daher umgehend behoben werden. In diesem Artikel stellen wir die Ursache und Lösung dieses Fehlers im Detail vor, um Entwicklern bei der reibungslosen Lösung dieses Problems zu helfen.

Frageninhalt

Ich habe mit der folgenden Methode eine TCP-Verbindung zum Datenbankserver geöffnet:

conn, err := net.dial("tcp", "localhost:5432") Es ist mir gelungen, nachdem ich diesen Code ausgeführt habe:

_, 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]))
Nach dem Login kopieren

Es wird gedruckt: Antwort erhalten: n

Die Protokolldatei des Servers zeigt:

2023-02-22 22:59:49.834 pkt [54802] fatal: ssl 请求后收到未加密的数据

2023-02-22 22:59:49.834 pkt [54802] 详细信息:这可能是客户端软件错误或尝试中间人攻击的证据。

Problemumgehung

Standardmäßig verlangt der Postgresql-Server, dass alle seine Clients SSL-verschlüsselte Verbindungen verwenden, sodass er Ihre Anfrage immer ablehnt.

Zu Test-/Entwicklungszwecken und um zu erkennen, dass Ihre Verbindung nicht sicher ist, gibt es einige Tricks, mit denen Sie das Problem beheben können:

  1. Erstellen Sie eine Verbindung zum TLS-Paket und lassen Sie es die Zertifikatsüberprüfung überspringen.
tlsconfig := &tls.config{
    insecureskipverify: true,
  }
        
  conn, err := tls.dial("tcp", "localhost:5432", tlsconfig)
Nach dem Login kopieren
  • Immer verwenden database/sql 包,它为您抽象了所有这些数据库供应商的具体情况。将 sslmode wenn möglich auf deaktiviert stellen.
  • 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()
    Nach dem Login kopieren
  • Installieren Sie die Postgresql-Datei data 目录中找到 pg_hba.conf und fügen Sie die folgende Zeile hinzu, um Ihrem lokalen Host immer zu vertrauen:
  • host    postgres   postgres   127.0.0.1/32    trust
    Nach dem Login kopieren

    Angenommen, der Benutzername lautet postgres

    1. Installieren data 目录中找到 postgres.conf 文件,并将 ssl 参数设置为 off in Postgresql.

    Bedenken Sie, dass all diese Konfigurationen Ihre Verbindung immer noch unsicher und anfällig für Angriffe machen.

    Um eine SSL-Verbindung korrekt herzustellen, müssen Sie ein Zertifikat einrichten. Dieses Wesentliche sollte helfen.

    Das obige ist der detaillierte Inhalt vonFehler: Nach SSL-Anfrage wurden unverschlüsselte Daten empfangen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Quelle:stackoverflow.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!