4 votes

Comment déboguer curl ? gnutls_handshake failed -unexpected TLS packet (OpenSSL)

Comment puis-je déboguer davantage les erreurs curl alors que le fichier error.log d'Apache n'en affiche aucune ?

(35) gnutls_handshake() a échoué : Un paquet TLS inattendu a été reçu.

curl -v https://example.com
* Rebuilt URL to: https://example.com/
*   Trying 127.0.0.1...
* Connected to example.com(127.0.0.1) port 443 (#0)
* found 151 certificates in /etc/ssl/certs/ca-certificates.crt
* found 612 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: An unexpected TLS packet was received.
* Closing connection 0

Ubuntu 16.04, apache2 fonctionne avec SSL.

UPDATE :

echo | openssl s_client -connect example.com:443

CONNECTED(00000003)
139626124003072:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:252:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 176 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1531383152
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---

UPDATE2 - RÉSOLU

Il y avait une ligne vide dans mon fichier de chaîne et RootCA n'était pas correctement installé sur le serveur à partir duquel je lance la commande openssl.

0 votes

Essayez avec openssl s_client . Qu'est-ce que cela dit ? Les erreurs TLS viennent avant les erreurs HTTP, donc elles n'apparaissent pas nécessairement dans les fichiers journaux d'Apache, et les erreurs TLS sont notoirement cryptiques à déboguer. Vous pouvez également lancer un renifleur de réseau comme Wireshark. Quelque chose de spécial pour votre site web ? Des pages statiques ? Une application ? Quelles sont vos directives de configuration TLS Apache ? Avez-vous essayé de les modifier ?

0 votes

Etes-vous sûr que le port 443 est un port ssl crypté ? Et non un port non crypté ?

0 votes

Merci. J'utilise Drupal 7 qui fonctionne très bien avec https alors je pensais que tout allait bien mais j'ai couru echo | openssl s_client -connect example.com:443 (voir la mise à jour ci-dessus) qui maintenant je pense ressemble à des certificats qui ne sont pas envoyés correctement ? Je vérifie maintenant ma configuration.

2voto

Markus Points 161

J'avais une ligne vide dans mon fichier de chaîne et RootCA n'était pas correctement installé sur le serveur à partir duquel je lance la commande openssl. Une fois réparé, curl fonctionne bien.

2 votes

Pour référence future, lorsque vous voyez Nouveau, (AUCUNE), Cipher est (AUCUNE) en openssl cela signifie, malgré le fait qu'il est dit TLSv1.2 quelques lignes plus bas, que la poignée de main TLS a été no réussi pour tout problème de client, de serveur ou des deux côtés.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X