Commande OpenSSL pour vérifier si un serveur est la présentation d'un certificat
Je suis en train de lancer une commande openssl afin d'affiner le problème SSL peut-être lorsque vous tentez d'envoyer un message sortant de notre système.
J'ai trouvé cette commande dans un autre sujet: À l'aide d'openssl pour obtenir le certificat à partir d'un serveur
openssl s_client -connect ip:port -prexit
La sortie de cette résultats dans
CONNECTED(00000003)
15841:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 121 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
Est-ce à dire que le serveur n'est pas de présenter un certificat? J'ai essayé d'autres systèmes sur une autre ip:port et qu'ils présentent un certificat avec succès.
Ne authentification mutuelle affecter cette commande avec -prexit?
--Update--
J'ai couru de nouveau la commande
openssl s_client -connect ip:port -prexit
Et je reçois cette réponse maintenant
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 121 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
J'ai ajouté -ssl3 à la commande
openssl s_client -connect ip:port -prexit -ssl3
Réponse:
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : SSLv3
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
Krb5 Principal: None
Start Time: 1403907236
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
Également essayer-tls1
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
Krb5 Principal: None
Start Time: 1403907267
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
- Pouvons-nous passer de ce super-utilisateur? J'ai trouvé la question elle-même utile car il constitue déjà une solution de contournement.
- Assurez-vous que vous avez utilisé apn de certificat, pas de certificat de développement ios.
Vous devez vous connecter pour publier un commentaire.
J'ai été le débogage d'un problème SSL aujourd'hui, ce qui a abouti à la même
write:errno=104
erreur. Finalement, j'ai trouvé que la raison de ce comportement est que le serveur nécessaire SNI (servername
extensions TLS) pour fonctionner correctement. La fourniture de la-servername
option pour openssl fait se connecter avec succès:Espère que cette aide.
SNI
qui nous a aidé à la résolution d'un CDN origine problème d'accès à la! 🙂C'est une poignée de main à l'échec. De l'autre côté ferme la connexion sans envoyer de données ("lire 0 octets"). Il pourrait être, que l'autre côté ne parle pas de SSL à tous. Mais j'ai vu des erreurs similaires sur broken SSL mise en œuvre, qui ne comprenez pas la plus récente version de SSL. Essayez, si vous obtenez une connexion SSL en ajoutant
-ssl3
à la ligne de commande de s_client.-ssl3
option pourrait aider. A l'inverse, si son, plus récente, de la mise en œuvre, puis latls1_2
option pourrait aider. Mais je tiens à assurer un SSL/TLS serveur à l'adresse IP/Port premier.Dans mon cas, le certificat ssl n'est pas configuré pour tous les sites (uniquement pour le web version non www version redirigé vers). Je suis à l'aide de Laravel forge et de la Nginx Standard config
J'ai eu la configuration suivante pour mon nginx site:
/etc/nginx/sites-available/timtimer.au
Donc après le déplacement (coupe & collage) la partie suivante de la /etc/nginx/h5bp/directive-seulement/ssl.conf fichier tout a fonctionné comme prévu:
Il ne suffit pas d'avoir les clés spécifié uniquement pour la version www même, si vous appelez seulement la www version directement!
J'ai été prise en-dessous, comme bien d'essayer d'en sortir à github.com comme notre proxy ré-écrit la connexion HTTPS avec leur auto-signé cert:
Dans ma sortie il y a aussi:
J'ai ajouté
-tls1_2
et il a bien fonctionné et maintenant, je peux voir qui CA c'est de l'utiliser sur les sortants de la demande. par exemple:openssl s_client -connect github.com:443 -tls1_2