Actualité web, solution Saas, CMS, eCommerce, Framework (Zend, Symfony, CSS), avec une pointe de SEO.

PAYPAL – 2016 changement obligatoire (SSL V3, TLS et IPN)

PayPal change en 2016 divers petites choses. Fin du SSL V3 au profit du TLS 1.2 (le support du TLS 1.0 sera retiré).
Pour en savoir plus, je vous laisse lire la suite de cet article.

PayPal vient de changer la dates limites concernant les mises à niveau de sécurité (01/06/2016) :

30 Juin 2017 : 

  • Mise à niveau vers TLS 1.2 et HTTP/1.1
  • Mise à niveau HTTPS pour les envois IPN
  • Abandon de la méthode GET pour les API SOAP/NVP classiques
  • En savoir +

Tableau des modifications des dates de mise à jour de PayPal (01/06/2016) :

paypal-mises-a-niveau-de-securite

PayPal, ce qui change en 2016 :

17 Juin 2016 :

  • TLS 1.2 sera la référence (le support du TLS 1.0 va prendre fin).
    Il vous faudra OpenSSL 1.0.1 ou supérieur.
    Pour vérifier la version du OpenSSL de votre serveur :
    – En PHP : faite un phpinfo()
    – En SSH tapez : openssl version
    Exemple d’un openssl obsolète ci-dessous :
    ssh-openssl-version
  • Passé le 17/06/2016 toutes les connexions en TLS v1.0 et TLS v1.1 seront refusée.
  • Sur OVH : explication pour passer en OpenSSL 1.0.1k / TLS1.2 (cliquez-ici).
    • Ce qui va ajouter dans .ovhconfig à la racine de votre serveur :
      app.engine=php
      app.engine.version=5.6
      http.firewall=none
      environment=production
      container.image=stable
  • EN GROS : On passe tous au TLS 1.2 avant le 17 juin 2016.
  • En savoir +

14 Avril 2016 :

  • Adresse IP mise à jour pour SFTP Paypal.
  • En savoir +

30 Septembre 2016 (BOOM Certificat SSL – HTTPS) :

  • IPN pour « Instant Payment Notification » (ou « Notification instantanée de paiement »).
  • HTTP/1.1
  • HTTPS
  • TLS 1.2
  • 2048-bit, SHA-256 certificates signed with VeriSign’s G5 root
  • On arrête le support du GET HTTP pour le POST NVP/SOAP (plus d’infos)
    • Après le 17 Juin 2016 (sandbox) :
      •  api.sandbox.paypal.com
      • api-3t.sandbox.paypal.com
      • api-aa.sandbox.paypal.com
      • api-aa-3t.sandbox.paypal.com
    • Après le 30 Septembre 2016 (environnement de production) :
      •  api.paypal.com
      • api-aa.paypal.com
      • api-3t.paypal.com
      • api-aa-3t.paypal.com
  • EN GROS : l’IPN doit-être sur un retour en https (certificat SSL obligatoirement avant le 30/09/2016).
  • En savoir +

Entre le 31 Janvier 2016 et le 1er Janvier 2018 :

  • SHA-256 en 2048-bit expirant tous les 3 ans
  • En savoir +

Pourquoi PayPal change en 2016 :

Qu’est-ce que Poodle ?

Poodle est le nom d’une nouvelle faille de sécurité Internet affectant SSL 3.0 (Secure Sockets Layer), un protocole conçu pour sécuriser les connexions Internet. L’exploitation de cette vulnérabilité permet aux cybercriminels d’accéder à des connexions censées être sécurisées par l’intermédiaire de ce protocole de sécurité particulièrement exploité, mais vieux de 15 ans.

Quelles sont les mesures prises par PayPal ?

Nous allons intégralement cesser notre prise en charge du SSL 3.0 le 3 décembre 2014. Nous sommes toutefois conscients qu’une telle décision peut engendrer des problèmes de compatibilité pour certains clients, les empêchant de payer avec PayPal sur les sites de marchands, entre autres conséquences. Pour évaluer votre situation et trouver une solution à vos éventuelles difficultés, nous avons créé ce Guide des mesures applicables aux marchands. Utilisez-le pour vérifier que votre intégration n’est pas menacée par cette vulnérabilité.

Sandbox Paypal (SSL 3.0 c’est terminé) :

A la date de l’écriture de cet article (04/03/2016), la Sandbox de Paypal (appelé aussi l’environnement de test) accessible à l’adresse https://developer.paypal.com a déjà désactivé le SSL 3.0

Vous aurez les erreurs suivantes en Sandbox si vous utilisez encore le SSL 3.0 :

  • * Erreur protocole SSL inconnu, échec de la connexion sécurisée à api-3t.sandbox.paypal.com:-9824
  • 140062736746144:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:337:

Il faudra passer sur du TLS (Transport Layer Security).

En savoir +

Une question ?

  • Vous pouvez me contacter par mail ou sur la page de contact.

Source : 

Posté le 05 Mar 2016 par Michael
  • certificat, HTTPS, IPN, paypal, SSL, TLS
  • Développeur / intégrateur, travaillant en agence web depuis 2005, je viens à présent vous proposer de venir découvrir mes créations personnelles de plugins / themes pour le CMS Wordpress & Prestashop, quelques solutions en mode SAAS & un peu d'actualité web.
    Auteur : Michael ( / Twitter )

    Commentaires publiés 13

    Posté par planete on
    • Avr 14 2016
    Répondre  
    Bonjour,

    Merci pour votre article, lorsqu'un site n'utilise pas de certificat et est en HTTP: devons nous faire quelque chose pour ce changement prévu en Juin 2016 ?

    Il y a aussi eu une maj du module Paypal le 12/04/2016 pour Prestashop, pourtant en Sandbox il y a les même problèmes qu'avant:
    PayPal response:
    ->
    Making new connection to 'api-3t.sandbox.paypal.com/nvp'
    Connect with CURL method successful
    Sending this params:
    METHOD=SetExpressCheckout&VERSION=106&PWD=EK2DVEJ3UFJNF9JJ&USER=(...)
    Send with CURL method failed ! Error: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
    Connect failed with fsockopen method

    Les lignes du api/paypal-connect.php ont changés dans cette version, maintenant c'est inscrit :
    @curl_setopt($ch, CURLOPT_SSLVERSION, Configuration::get('PAYPAL_VERSION_TLS_CHECKED') == '1.2' ? 6 : 1);

    Savez vous quels sont les modifications à faire ?

    merci de votre retour
      Posté par Michael on
      • Avr 15 2016
      Répondre  
      Bonjour "Planete",

      Oui effectivement pour Juin 2016 il faut s'assurer que votre OpenSSL est bien à jour.
      S'il s'agit d'un serveur mutualisé, c'est votre hébergeur (ex : OVH, Gandi, 1and1, ...) qui va s'en occuper.
      S'il s'agit d'un serveur dédié, c'est sans doute à vous de le faire.

      Pour le nouveau module du 12/04/2016, je n'ai pas essayer encore.
    Posté par Mohamed on
    • Mai 7 2016
    Répondre  
    Bonsoir,
    tout d'abord je souhaite vous remercier pour la qualité de votre article.
    Je me trouve dans la même situation que celle expliquée dans votre article. J'ai une boutique prestashop qui est hébergée sur un serveur ovh (debian squeeze +ispconfig).Apache/2.2.16
    En effectuant votre manip sur ssh, ça m'affiche la version OpenSSL 0.9.8o 01 Jun 2010.
    D'après ce que j'ai pu lire cette version ne supporte pas tls1.2.
    Selon vous, ma configuration actuelle (debian 6 et apache2.2.16) me permet-elle de passer à la version Openssl 1.0.1

    En vous remerciant pour votre aide
      Posté par Michael on
      • Mai 8 2016
      Répondre  
      Bonjour,
      Oui je pense qu'il vous suffit de mettre à jour OpenSSL pour le basculer sur une version >= à 1.0.1
      Bonne chance
    Posté par Antoine on
    • Juin 10 2016
    Répondre  
    Bonjour,
    Je dispose d'un hébergement mutualité 1&1.
    Effectivement, IPN ne marche pas, suite à l'erreur : "Can't connect to PayPal to validate IPN message: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure".

    OpenSSL version me donne : OpenSSL 0.9.8o 01 Jun 2010

    Comment faire pour upgrader tout ça, étant mutualité je n'ai pas accès à grand chose.

    Merci :)
      Posté par Michael on
      • Juin 10 2016
      Répondre  
      Bonjour Antoine,
      Vous n'avez rien à changer si vous êtes sur un mutualisé.
      Votre hébergeur 1and1 va s'en occuper.
      Vérifier si OpenSSL est à jour 1 fois / mois.
      NB : PayPal a repoussé certaine mise à jour à 2017.
    Posté par LudoLCG on
    • Juin 25 2016
    Répondre  
    Bonjour, merci pour votre article mais tous ces termes techniques me laissent un peu perplexe :(

    Pour faire simple, j'ai crée un site joomla pour un client (le CMS est à jour).
    Ce n'est pas une boutique E-commerce et le site n'utilise donc pas un serveur sécurisé type SSL, mais un http classique.
    Néanmoins nous utilisons un composant permettant de remplir un formulaire de réservation avec un acompte paypal, et la cliente à reçu de nombreux mails de Paypal l'informant de ce grand chamboulement. (en gros pour valider l’acompte on arrive sur une page de paiement paypal standard, en https, puis on est redirigé ensuite sur le site de la cliente)

    N'étant pas assez technique pour savoir et comprendre vraiment de quoi il s'agit, j'aimerai trouver une âme charitable qui puisse répondre à ces quelques questions que je me pose.

    1 - Ma cliente est-elle concerné si son serveur est un http classique ?
    2 - Doit-elle forcément passer sur une connexion sécurisée, et changer son offre d'hébergement chez OVH ?
    3 - Comment son site, qui fonctionne encore parfaitement au jour d'aujourd'hui, peut-être affecté par la mise à jour ?

    N'hésitez pas à m'en dire un peu plus sur tout ça, je patoge un peu :-(

    Merci d'avance, voici l'url de son site que vous puissiez vous faire une idée : http://pedaledouce.com/reservation
      Posté par Michael on
      • Juil 3 2016
      Répondre  
      Bonjour LudoLCG,
      1 - Le https est conseillé pour sécuriser le tunnel d'achat sur votre site.
      2 - Non (pas obligatoire)
      3 - Il faut vérifier votre version du Open SSL de votre hébergement (OVH va effectuer la mise à jour sur votre mutualisé prochaine, si cela n'est pas déjà le cas)
    Posté par Jimmy on
    • Nov 18 2016
    Répondre  
    bonjour,
    je suis en train de développer un site marchand sur Prestashop 1.6.1.5 mais suis bloqué depuis plusieurs jours en local lorsque je teste la sandbox avec Paypal.
    mon module PayPal est une version v3.11.1
    j'ai créé les comptes fictifs perso et business sur la sandbox, et renseigné les codes API du compte business qui m'ont été généré sur ma plateforme Prestashop. TOUT EST OK
    mais quand j'e simule un achat avec la sandbox, j'ai le message suivant :

    Error occurred:
    Veuillez contacter le marchant:
    PayPal response:

    je suis sous Apache/2.2.29 (Unix) mod_wsgi/3.5 Python/2.7.10 PHP/7.0.0 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_fastcgi/2.4.6 mod_perl/2.0.9 Perl/v5.22.0

    je constate que mon OpenSSL est 0.9.8

    pourriez-vous SVP m'aider à trouver la solution et si le problème vient du Openssl, me dire surtout comment faire pour upgrader la version.

    merci infiniment de votre aide très précieuse
      Posté par Michael on
      • Nov 18 2016
      Répondre  
      Bonjour Jimmy,

      Essaies de basculer PayPal en "production", puis achète un produit.
      Il faut aussi que ton serveur soit en OpenSSL 1.0.1 ou supérieur.

      NB : prend un hébergeur assez rapidement pour basculer ton code directement dessus, et pouvoir effectuer des tests online.

      Bon week-end
    Posté par David Larivière on
    • Mar 19 2017
    Répondre  
    Salut Michael,

    Merci beaucoup pour cette explication limpide...

    J'ai créé un site qui fonctionne très bien avec Paypal...
    J'ai basculé en https et effectué les modifications sur le fichier ipn... Pourtant celui-ci fonctionne toujours en production mais pas avec la sandbox.
    J'ai reçu ce message de paypal...

    Mise à niveau TLS 1.2 et HTTP/1.1 – Effectuer d'ici au 30 juin 2017
    Mise à jour nécessaire : %%TLS %%
    Protocole HTTPS pour les envois de vérification IPN – Effectuer d'ici au 30 juin 2017
    Mise à jour nécessaire : Oui

    Je suis hébergé chez infomaniak en mutualisé et mon phpinfo() donne ceci:
    SSL Version OpenSSL/1.0.1t

    Et mon ipn se connecte comme ceci:
    $header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
    $header .= "Host: ipnpb.paypal.com:443\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
    $fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);

    Je ne trouve NULLE PART un code à jour pour ipn, l'employé helpdesk de chez Paypal m'assure que ma configuration ne peut pas fonctionner, or ça marche pour le moment... et ne me propose pas de solution... :(

    Aurais-tu une piste à me conseiller?

    Mille mercis
      Posté par David Larivière on
      • Mar 19 2017
      Répondre  
      Et j'ai oublié:
      PHP Version 5.4.45
      Posté par David Larivière on
      • Mar 20 2017
      Répondre  
      Et encore:
      Le plus étonnant c'est que Paypal sandbox valide la vente mais mon fichier ipn s'interrompt à la connexion.

    Écrivez-nous

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *