Comment ajouter des algorithmes de curl en php?

Je suis en train d'utiliser php curl pour vous connecter à un site, mais l'erreur "aucun algorithme de chiffrement". Complément d'enquête, et je pense que cela a quelque chose à voir avec NSS? J'ai découvert qu'à partir de la ligne de commande, je peux reproduire l'erreur (donc, le problème est certainement en curl, et non pas avec le php wrapper), mais que si j'ai mis --algorithmes ecdhe_ecdsa_aes_128_sha alors cela fonctionne:

[ec2-user@ip-10-181-165-22 current]$ curl -I https://sslspdy.com
curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s).

[ec2-user@ip-10-181-165-22 current]$ curl -I --ciphers ecdhe_ecdsa_aes_128_sha https://sslspdy.com
HTTP/1.1 200 OK
Server: nginx centminmod
Content-Type: text/html; charset=utf-8
Connection: close
Vary: Accept-Encoding
Strict-Transport-Security: max-age=31536000; includeSubdomains
Date: Sat, 07 Feb 1970 22:34:32 GMT
X-Page-Speed: ngx_pagespeed
Cache-Control: max-age=0, no-cache

Donc mes questions sont,

  1. Pourquoi est-ce arrivé? Je n'ai pas été en mesure de trouver une explication en ligne comment les algorithmes de chiffrement de travail dans curl; il semble que chaque page est écrite avec l'hypothèse que le lecteur est déjà un expert dans le domaine, malheureusement, une phrase comme "vous êtes sans doute à l'aide de NSS, donc essayez de changer la PKCS FIPS" est totalement incompréhensible pour moi, et googler vais expliquer les composants individuels (généralement par référence à 20 ans), et non pas comment ils se rapportent les uns aux autres.
  2. Est-il de toute façon je peux prendre curl dites-moi quelles sont les algorithmes c'est d'essayer et qui chiffre le serveur va accepter? J'ai essayé de regarder le serveur sur ssllabs, mais il semble dire que le serveur accepte tous les algorithmes, dont il n'a évidemment pas.
  3. Quelles sont les options que j'ai besoin de passer à curl_setopt pour que mon script php est capable de se connecter à ce serveur?
  4. Si j'ai mis la clef de chiffrement pour cela, que la rupture d'autres sites? Est-il quelque chose que je peux faire pour que curl est capable de se connecter à tous les sites sécurisés, ou dois-je faire manuellement itérer sur les différents algorithmes d'essayer chacun d'eux pour trouver celui qui fonctionne?

OriginalL'auteur Benubird | 2015-06-05