Inhaltsverzeichnis
Frageninhalt
Problemumgehung
Heim Backend-Entwicklung Golang Holen Sie sich TLS-Informationen vom Client

Holen Sie sich TLS-Informationen vom Client

Feb 09, 2024 pm 12:27 PM

从客户端获取 TLS 信息

php-Editor Baicao stellt Ihnen vor, wie Sie TLS-Informationen vom Client erhalten. Während des Website-Entwicklungsprozesses ist es sehr wichtig, die TLS-Informationen des Clients zu erhalten, um einige sicherheitsrelevante Funktionen zu implementieren. TLS ist ein Verschlüsselungsprotokoll zur Sicherung der Netzwerkkommunikation. Durch den Erhalt der TLS-Informationen des Kunden können wir die Zertifikatsinformationen, den Verschlüsselungsalgorithmus, die Schlüssellänge und andere zugehörige Informationen des Kunden erhalten und so die Sicherheit der Website verbessern. In den folgenden Artikeln erklären wir ausführlich, wie Sie TLS-Informationen vom Client erhalten und wie Sie diese Informationen verwenden, um die Sicherheit der Website zu erhöhen.

Frageninhalt

net/http go-Paket verfügt über eine Typanforderung, die ein Speichern definiert ConnectionState 的字段 TLS。不过,描述中的最后一条语句表示它被 HTTP 客户端忽略。我在调试时也检查过,它是 nil.

Ich muss den Wert TLSUnique von diesem Verbindungsstatus (oder anderswo) erhalten, damit ich ihn in meine Zertifikatsanforderung (auch CSR genannt) aufnehmen kann, bevor ich ihn registrieren/an den Server senden kann.

Der Server geht über den Rahmen meiner Frage hinaus. Was mir am Herzen liegt, ist der Kunde.

Der Server empfängt dann die Anfrage und prüft die Signatur der CSR sowie den TLS-Eindeutigkeitswert. Dadurch wird bewiesen, dass der Client, der die TLS-Verbindung herstellt, derselbe Client ist, der die CSR signiert hat.

Dies ist aus RFC 7030 – Abschnitt 3.5 (EST-Protokoll)

[Was ich verwende]

Ich experimentiere mit den GlobalSign EST Go-Paketen, aber sie scheinen diese Funktionalität nicht zu enthalten.

Ihr EST-Client scheint für jeden EST-Vorgang einen http-Client zu erstellen. Ich dachte, ich könnte dieses Verhalten ändern und einen Client haben, an den alle Anfragen gesendet werden können.

Da der Client jedoch die RoundTripper-Schnittstelle akzeptiert, kann ich die Informationen der zugrunde liegenden Verbindung nicht außerhalb der Implementierung verwenden.

Problemumgehung

Ein Ansatz erfordert die Durchführung einiger kleiner Änderungen am Global-Symbol-EST-Paket.

Wie ich bereits sagte, erstellt die aktuelle Implementierung einen neuen http-Client für jeden EST-Vorgang (CACerts, CSRAttrs, Enroll usw.)

1- Lassen Sie uns einen http-Client für alle EST-Vorgänge verwenden.
2- In jedem Fall müssen wir anrufen, um das CA-Zertifikat zu erhalten, bevor wir den CSR registrieren.
3- Die HTTP-Antwort auf jede Client-Anfrage legt Felder offen http.Response.TLS.TLSUnique.
4- Bitten Sie den Kunden, es in die Zertifikatsanforderung aufzunehmen, es zu signieren und zu registrieren.

Wenn ich über das Global Symbol EST-Paket nachdenke und warum sie sich dafür entscheiden, jedes Mal einen neuen http-Client zu erstellen.
(Es sei denn, man wartet nur darauf, dass Beispiele entsprechend den Wünschen des Benutzers verwendet werden)

Das obige ist der detaillierte Inhalt vonHolen Sie sich TLS-Informationen vom Client. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich? GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich? Mar 03, 2025 pm 05:17 PM

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren? Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren? Mar 03, 2025 pm 05:22 PM

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Mar 10, 2025 pm 05:38 PM

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache? Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache? Mar 03, 2025 pm 05:18 PM

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Mar 10, 2025 pm 03:20 PM

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Mar 10, 2025 pm 05:36 PM

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie schreibt man Unit -Tests in Go? Wie schreibt man Unit -Tests in Go? Mar 21, 2025 pm 06:34 PM

Wie schreibt man Unit -Tests in Go?

Wie schreibe ich Dateien in Go Language bequem? Wie schreibe ich Dateien in Go Language bequem? Mar 03, 2025 pm 05:15 PM

Wie schreibe ich Dateien in Go Language bequem?

See all articles