J'essaie de vous connecter à un serveur à l'aide de la commande suivante:
openssl s_client -connect xx.xx.xx.xx:443
Erreur:
CONNECTED(00000005)
depth=0 L = XXXXXXX
verify error:num=20:**unable to get local issuer certificate**
verify return:1
depth=0 L = XXXXXXXX
verify error:num=21:**unable to verify the first certificate
verify return:1**
---
Certificate chain
0 s:/L=XXXX
i:/C=XXXX
---
Server certificate
-----BEGIN CERTIFICATE-----
....
...
..
<removed cert>
..
...
....
-----END CERTIFICATE-----
subject=xxxxxxx CN=*xxx.xom
issuer=XXXX CA
---
No client certificate CA names sent
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2281 bytes and written 326 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: 52A27BC97001D52A7DA4A73FBA87C7DD2902A0C55B0AE9FAA87A3A8DBA94A7CE
Session-ID-ctx:
Master-Key: ECD435DCDD59B2BAD50A1BF8BAEA39E68058524A082DC219CEE290DB7A80A37AE4E763DF7FA
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - 5d b4 5c fe ca 2d 54 2e-31 49 74 a6 18 a7 3a f5 ].\..-T.1It...:.
XXXX
0080 - ab 5c 0a bc 45 9c 10 01-9f 3b ce 6e ee 1a a6 99 .\..E....;.n....
0090 - 04 81 ea e0 be a5 91 a2-18 09 d4 b8 90 b7 c7 50 ...............P
00a0 - f7 7d 73 e5 b1 3d 0d 58-20 07 78 7b 57 c4 34 58 .}s..=.X .x{W.4X
Start Time: 1566410644
Timeout : 7200 (sec)
**Verify return code: 21 (unable to verify the first certificate)**
---
Il semble donc que la commande essaie de vérifier le certificat que je ne veux pas. Comment puis-je contourner la vérification? Y a-t-il quelque chose de similaire à curl - k drapeau?
Openssl's s_client
ne se termine jamais sur le mauvais certificat à moins que vous ne le demandiez pas trop en utilisant
[.____] -verify_return_error
argument (comme déjà suggéré par @bartonjs dans les commentaires).
Vous pouvez en savoir plus à ce sujet dans l'homme page man 1 s_client
ou en ligne . Chercher -verify
argument ou plus tard dans [~ # ~] Notes [~ # ~ ~] :=:
S'il y a des problèmes de vérification d'un certificat de serveur, le
-showcerts
Option peut être utilisée pour afficher tous les certificats envoyés par le serveur.Les
s_client
Utility est un outil de test et est conçu pour continuer la poignée de main après toutes les erreurs de vérification du certificat. En conséquence, il acceptera toute chaîne de certificats (fiduciaire ou non) envoyée par le pair. Aucun Test Applications ne devrait pas faire cela car il les rend vulnérables à une attaque MITM. Ce comportement peut être changé avec le-verify_return_error
Option: Toutes les erreurs de vérification sont ensuite renvoyées à l'abandon de la poignée de main.
Si le résultat que vous voyez est la dernière "erreur", vous voyez, c'est probablement quelque chose d'autre sur le serveur qui met fin à la connexion à ce moment-là. Vous devriez voir la raison dans les journaux du serveur Web.