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

Publié le 20/03/2021 • Mis à jour 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\Controller\Snippets;

use App\Tests\WebTestCase;
use App\Utility\Ipstack;
use Symfony\Contracts\HttpClient\HttpClientInterface;

/**
 * @covers Snippet99Trait::snippet99
 * @covers Ipstack::getPublicIp
 */
final class Snippet99Test extends WebTestCase
{
    private HttpClientInterface  $httpClient;

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

    /**
     * @covers Snippet99Trait::snippet99
     */
    public function testSnippet99(): void
    {
        $ip = $this->httpClient->request('GET', 'https://ipecho.net/plain', [
            'verify_peer' => false,
        ])->getContent();
        self::assertNotEmpty(filter_var($ip, FILTER_VALIDATE_IP));
    }
}

 Plus sur Stackoverflow   Lire la doc  Snippet aléatoire