Je ne peux pas demander à wget d'utiliser les certificats clients. La documentation parle de l'utilisation de l'indicateur --certificate.
L'utilisation de l'indicateur de certificat est claire, je l'ai configuré pour utiliser la version PEM du certificat client.
Mais lorsque je me connecte, j'obtiens l'erreur suivante:
HTTP request sent, awaiting response... Read error (error:14094410:SSL routines:
SSL3_READ_BYTES:sslv3 alert handshake failure; error:140940E5:SSL routines:SSL3_
READ_BYTES:ssl handshake failure) in headers.
Giving up.
échec de la prise de contact SSL signifie que le client n'a pas fourni de certificat client correct. Le certificat client que j'utilise fonctionne toujours dans un navigateur.
Remarque: lorsque je désactive l'authentification client sur le serveur, wget peut se connecter. Remarque: L'utilisation de curl est suggérée, mais je voudrais éviter le changement.
ssl-certificate
wget
Bart De Vos
la source
la source
Réponses:
J'ai étudié une semaine à ce sujet, enfin avec l'aide que j'ai obtenue de cette page.
La commande que j'ai utilisée pour me connecter est:
la source
Êtes-vous certain que l'authentification par certificat client SSL fonctionne sur votre serveur?
Je viens de tester que je peux prendre mon certificat (au format PKCS12), le convertir en un fichier de certificats et de clés au format PEM et l'utiliser avec wget très bien.
Je peux provoquer trois conditions d'erreur, dont aucune ne correspond à ce que vous signalez:
J'utilise nginx; vous ne mentionnez pas ce que vous utilisez, donc je ne sais pas si Apache retournerait les mêmes réponses.
Je suggère de prendre votre certificat et votre clé, de les combiner dans PKCS12 (ou simplement de les importer en tant que PEM si votre navigateur prend en charge le format) et de vous assurer que tout fonctionne en premier sur ce front.
Si vous l'avez déjà fait, vous pouvez peut-être essayer à partir d'une autre machine pour vous assurer que ce n'est pas quelque chose d'étrange avec la version d'OpenSSL que vous utilisez.
Enfin, essayez d'utiliser OpenSSL en mode s_client:
Et voyez si les choses fonctionnent à ce niveau. Si c'est le cas, alors quelque chose est bancal avec wget et vous voudrez peut-être le reconstruire ou le réinstaller. Sinon, le niveau de sortie de débogage peut vous aider à identifier le problème plus que la sortie de débogage de wget.
la source
J'ai utilisé wget avec succès comme ceci:
Notez le
--private-key option
. retenue.url a https: //bla.bla.blaCependant, il m'invite maintenant avec "Entrez la phrase de passe PEM:".
Si j'entre le mot de passe, cela fonctionne bien, mais quelqu'un sait-il comment contourner l'invite?
la source
Est-il possible que wget se connecte au port 80? Cette erreur est très similaire aux erreurs que je reçois lors des tests lorsque j'ai accidentellement écouté HTTP 80 et 443-wget essayait de parler SSL et n'obtenait pas la réponse souhaitée.
la source
Obtenez une capture réseau et chargez-la dans Wireshark. Cela devrait vous donner une image plus claire de ce qui échoue au niveau SSL / TLS.
la source
Il y a eu des problèmes avec SSLv3 dans des versions comme 0.9.8.
Essayez de passer -no_ticket à openssl s_client ou si -ssl2 fonctionne
la source