Maison >développement back-end >Golang >Obtenir les informations TLS du client
l'éditeur php Baicao vous présentera comment obtenir les informations TLS du client. Pendant le processus de développement du site Web, l'obtention des informations TLS du client est très importante pour mettre en œuvre certaines fonctions liées à la sécurité. TLS est un protocole de cryptage utilisé pour sécuriser les communications réseau. En obtenant les informations TLS du client, nous pouvons obtenir les informations de certificat du client, l'algorithme de cryptage, la longueur de la clé et d'autres informations connexes, améliorant ainsi la sécurité du site Web. Dans les articles suivants, nous expliquerons en détail comment obtenir les informations TLS du client et comment appliquer ces informations pour améliorer la sécurité du site Web.
net/http go package a une requête de type qui définit une sauvegarde ConnectionState
的字段 TLS。不过,描述中的最后一条语句表示它被 HTTP 客户端忽略。我在调试时也检查过,它是 nil
.
Je dois obtenir la valeur TLSUnique
de cet état de connexion (ou ailleurs) afin de pouvoir l'inclure dans ma demande de certificat (alias CSR) avant de pouvoir l'enregistrer/l'envoyer au serveur.
Le serveur reçoit alors la requête et vérifie la signature du CSR ainsi que la valeur unique TLS, prouvant que le client établissant la connexion TLS est le même client qui a signé le CSR.
Ceci provient de la RFC 7030 - Section 3.5 (Protocole EST)
[Ce que j'utilise]
J'expérimente les packages GlobalSign EST Go, mais ils ne semblent pas inclure cette fonctionnalité.
Leur client EST semble créer un client http pour chaque opération EST, j'ai pensé que je pourrais changer ce comportement et avoir un client auquel envoyer toutes les requêtes.
Cependant, puisque le client accepte l'interface RoundTripper, je ne peux pas utiliser les informations de connexion sous-jacentes en dehors de l'implémentation.
Une approche nécessite d'apporter quelques petites modifications au package EST de symbole global.
Comme je l'ai déjà dit, l'implémentation actuelle crée un nouveau client http pour chaque opération EST (CACerts, CSRAttrs, Enroll, etc.)
1- Utilisons un client http pour toutes les opérations EST.
2- Dans tous les cas, nous devons appeler pour obtenir le certificat CA avant d'enregistrer le CSR.
3- La réponse http à toute demande client exposera des champs http.Response.TLS.TLSUnique
.
4- Demandez au client de l'inclure dans la demande de certificat, de le signer et de l'enregistrer.
Quand je pense au package EST de symbole globalet pourquoi ils choisissent de créer un nouveau client http à chaque fois.
(À moins d'attendre simplement que des exemples soient utilisés selon les souhaits des utilisateurs)
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!