J'aimerais tester les connexions client avec IMAP sur SSL, HTTPS et d'autres protocoles Internet sécurisés basés sur du texte sur SSL/TLS, de la même manière que j'utiliserais telnet ou netcat si elles n'étaient pas transmises via un protocole sécurisé. Existe-t-il un moyen de forcer telnet ou netcat à passer par SSL/TLS, par exemple avec un tube ou un autre programme?
Il n’existe pas de client Telnet/Netcat - il s’agit de deux programmes distincts et il existe au moins 10 clients Telnet différents et au moins 6 versions différentes de Netcat (netcat d'origine, GNU netcat, OpenBSD netcat, nmap's ncat; j'ai oublié le reste).
Les outils préférés proviennent des bibliothèques TLS elles-mêmes. Ils pourraient être un peu verbeux, cependant.
GnuTLS possède un outil client TLS sous Linux:
gnutls-cli imap.gmail.com -p 993
Utilisez -s
pour STARTTLS; vous devrez entrer manuellement les commandes de protocole nécessaires et appuyer sur CtrlD quand prêt.
Prend en charge IPv6, valide les certificats de serveur par défaut.
OpenSSL possède un outil client TLS:
openssl s_client -connect imap.gmail.com:993
Ceci est disponible pour tous les systèmes d'exploitation. STARTTLS est pris en charge via les options -starttls imap
ou -starttls smtp
et le programme le négociera automatiquement. (Bien qu'il jette la réponse initiale du serveur après l'avoir fait, mais c'est généralement correct.)
Seule la version ≥ 1.1 prend en charge IPv6.
Seule la version ≥ 1.0.2 (IIRC) valide le certificat de serveur par défaut. les anciennes versions nécessitent la spécification manuelle -CApath.
(J'aimerais également disposer d'outils pour tester NSS et SChannel, mais je n'en ai trouvé aucun.)
Les programmes utilisent également les mêmes bibliothèques, mais peuvent avoir moins de boutons de configuration. Certains omettent même les vérifications de certificats homologues par défaut ...
socat:
socat openssl:imap.gmail.com:993 stdio
le mode readline peut être utilisé pour des raisons pratiques:
socat ssl:imap.gmail.com:993 readline
STARTTLS n'est pas pris en charge.
ncat de nmap supporte TLS (mais pas STARTTLS):
ncat --ssl imap.gmail.com 993
Certains clients Telnet, tels que le paquet telnet-ssl sur Debian, prennent également en charge TLS:
telnet-ssl -z ssl imap.gmail.com 993
STARTTLS peut être activé avec starttls
à partir du Ctrl] menu d'échappement.
Vous voudrez peut-être regarder openssl s_client , par exemple.
# openssl s_client -connect dummy.com:8443
Oui, il y a un programme appelé Stunnel
il a un fichier de configuration,
vous lui dites sur quel port écouter, quel port transférer.
cela fonctionne pour le côté client, le côté serveur ou les deux.
il peut donc transformer un serveur qui ne prend pas en charge SSL en un serveur qui le fait.
ou un client qui ne prend pas en charge le SSL, en fait un qui le fait.
ou faire en sorte qu'un client et un serveur aient une connexion ssl.
Il y a aussi sclient ( git ) si vous avez besoin d'un support multiplateforme ( c'est-à-dire Windows).
Créez un serveur local qui ouvre les tls pour example.com
$ sclient example.com:443 localhost:3000
> [listening] example.com:443 <= localhost:3000
Faites une demande à example.com avec telnet
$ telnet localhost 3000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
> GET / HTTP/1.1
> Host: example.com
> Connection: close
>
>