Lorsque vous utilisez un client https tiers, il peut arriver que vous souhaitiez essayer un SNI différent de celui réel, qui ne peut pas être acheminé avec nginx car il ne prend pas en charge SNI.
Vous pourrez peut-être réécrire SNI en utilisant un proxy appelé mitmproxy. Cette fois, nous supposons un client qui peut utiliser la méthode CONNECT.
Cependant, la méthode HTTPS transparente de l'URL suivante est susceptible d'être réécrite même si elle ne prend pas en charge le proxy. https://docs.mitmproxy.org/stable/concepts-howmitmproxyworks
Installez mitmproxy avec pip, etc. https://docs.mitmproxy.org/stable/overview-installation/
Enregistrez le programme suivant sous le nom custom_sni.py.
from mitmproxy import ctx, http
import mitmproxy
def next_layer(layer: mitmproxy.proxy.protocol.Layer):
if isinstance(layer,mitmproxy.proxy.protocol.TlsLayer):
layer._custom_server_sni="<SNI que vous voulez résoudre>"
return layer
Autorisez le certificat mitmproxy (~ / .mitmproxy / mitmproxy-ca-cert.cer) comme préparation préliminaire. Démarrez ensuite le proxy sur le port 8080 en procédant comme suit:
mitmproxy -s custom_sni.py
Tout ce que vous avez à faire est de définir le proxy sur le client que vous souhaitez utiliser.
Recommended Posts