Désactiver la vérification de certificat SSL avec le client HTTP Symfony

Publié le 20/03/2021 • Actualisé le 20/03/2021


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code, nous allons voir comment désactiver la vérification de certificat SSL avec le client HTTP Symfony. Quand on fait confiance à la source et qu'on veut éviter l'erreur suivante : SSL peer certificate or SSH remote key was not OK, ça peut être utile (temporairement !). J'utilise ceci dans quelques de mes tests comme ci-dessous. L'astuce est de passer l'option verify_peer (3ème argument de la fonction request) avec la valeur false.


<?php

declare(strict_types=1);

namespace App\Tests\External\Controller\Snippet;

use App\Tests\WebTestCase;
use App\Utility\AbstractApi;
use Symfony\Component\HttpClient\Exception\TransportException;
use Symfony\Contracts\HttpClient\HttpClientInterface;

/**
 * @see https://ipecho.net
 * @see Snippet99Trait::snippet99
 * @see AbstractApi::getPublicIp
 */
final class Snippet99Test extends WebTestCase
{
    private HttpClientInterface $httpClient;

    protected function setUp(): void
    {
        $this->httpClient = $this->getHttpClientService();
    }

    /**
     * @see Snippet99Trait::snippet99
     */
    public function testSnippet99(): void
    {
        try {
            $ip = $this->httpClient->request('GET', 'https://ipecho.net/plain', [
                'verify_peer' => false,
            ])->getContent();
        } catch (TransportException) {
            $ip = '127.0.0.1';
        }

        self::assertNotEmpty(filter_var($ip, FILTER_VALIDATE_IP));
    }
}

 Plus sur Stackoverflow   Lire la doc  Snippet aléatoire

  Travaillez avec moi !