Désactiver la vérification de certificat SSL avec le client HTTP Symfony
Publié le 20/03/2021 • Actualisé le 20/03/2021
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