[gull] Truc et astuces: Afficher les empreintes sha1 et md5, d'un site https, en ligne de commande avec OpenSSL
Félix Hauri
felix at f-hauri.ch
Wed Sep 9 10:53:56 CEST 2009
Bonjour,
Attention, malgré le titre, ce mail à surtout pour but de démontrer l'utilisation
de multiple descripteurs de fichiers dans bash.
Voici une méthode pour afficher les empreintes des clefs d'un site https,
en ligne de commande, avec openssl:
$ ( echo |
openssl s_client -connect www.poste.ch:443 2>&1 |
tee /dev/stderr |
openssl x509 -md5 -fingerprint -noout >/dev/tty
) 2>&1 |
openssl x509 -sha1 -fingerprint -noout
SHA1 Fingerprint=3F:1D:E0:81:E8:22:0F:63:C3:A4:19:A7:FD:E0:5C:8C:C8:19:F0:58
MD5 Fingerprint=E7:D9:46:5C:FC:2A:C4:66:16:23:A8:4D:03:8C:EE:F0
Mais bon, jongler avec stderr n'est pas une bonne idée:
- On risque de perdre des messages d'erreur
- la poursuite d'un tel script n'est pas aisée...
Une particularite de bash est la possibilité de générer autant de
descripteur occasionnels que nécessaire (max ??), sous la forme:
``(liste de commande)5>&1''
exemple:
$ (echo >&44 Salut )44>&1
Salut
$ (echo >&44 Salut )44>&1 6>&1 7>&1
Salut
$ (echo >&7 Salut )44>&1 6>&1 7>&1
Salut
$ (echo >&8 Salut )44>&1 6>&1 7>&1
bash: 8: Bad file descriptor
Cela peut etre des fichiers différents:
$ () >logfile 2>errfile 7>foofile 44>barfile <inputfile
Et donc:
$ (( echo |
openssl s_client -connect www.ubs.com:443 2>&1 |
tee /proc/self/fd/5 |
openssl x509 -md5 -fingerprint -noout >&4
) 5>&1 |
openssl x509 -sha1 -fingerprint -noout
) 4>&1 |
sed 's/=/ \t/'
MD5 Fingerprint 0A:A2:64:5F:73:83:03:45:91:B7:82:D2:29:38:25:38
SHA1 Fingerprint 5E:76:E4:3A:85:D5:D9:18:DE:E1:79:BC:97:CA:B4:81:99:09:D5:3E
Le sed ne sert qu'à démontrer que les deux sorties passent désormais
par le descripteur 1 (sortie-standard -> entrée standard).
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list