objectif
Exposer un port local qui chiffre/déchiffre vers une cible TLS avec SNI, utile pour tester des services sécurisés.
code minimal
# proxy local 127.0.0.1:8443 -> cible TLS data.pm:443 avec SNI
socat -v TCP-LISTEN:8443,reuseaddr,fork OPENSSL:data.pm:443,verify=1,snihost=data.pm
utilisation
# vérifier un service TLS sans curl
printf 'GET / HTTP/1.1\r\nHost: data.pm\r\n\r\n' | nc 127.0.0.1 8443
# proxy TCP simple (sans TLS) vers un backend
socat -v TCP-LISTEN:7000,reuseaddr,fork TCP:127.0.0.1:7001
variante(s) utile(s)
# forcer un CA custom (PKI interne)
socat TCP-LISTEN:8443,reuseaddr,fork OPENSSL:data.pm:443,verify=1,snihost=data.pm,cafile=/etc/ssl/certs/ca-bundle.crt
# passerelle inverse (connecter sortant via proxy)
socat - PROXY:proxy.local:destination:443,proxyport=3128
notes
verify=1vérifie la chaîne TLS; utilisezcafile/capathpour CA custom.-vinscrit les transferts sur stderr; retirez en production.- préférez des règles firewall pour restreindre l’accès au port exposé.