Connexion HTTPS à l’aide de Curl

By Flavien ROUX

curl est un outil de ligne de commande qui prend en charge de nombreux protocoles Web comme HTTPS.

Dans ce tutoriel, nous allons voir comment utiliser curl pour invoquer un point de terminaison HTTPS.

Certificats SSL signés par une autorité de certification de confiance

La syntaxe la plus simple à utiliser avec curl est curl . Faisons une requête en utilisant curl pour appeler un point de terminaison HTTPS :

curl https://www.baeldung.com

Dans ce cas, curl effectue une requête GET et renvoie la source de la page sans aucune erreur car le serveur utilise des certificats SSL signés par des CA de confiance. Cela signifie que le serveur utilise un certificat qui a été signé par une autorité de confiance.

Certificats auto-signés

Parfois, si un serveur utilise un certificat auto-signé, nous rencontrerons l’erreur « SSL certificate problem : self-signed certificate » lors d’une requête curl. Cela signifie que le serveur n’utilise pas un certificat signé par une autorité de confiance.

Disons que nous exécutons un projet Spring Boot local qui est configuré avec TLS.

Une façon de gérer ce problème est de forcer curl à ignorer la vérification du certificat, en utilisant l’indicateur -k ou -insecure :

curl -k https://localhost:8443/baeldung

Cependant, ignorer les erreurs HTTPS peut être très peu sûr. Une autre option consiste à utiliser le certificat du serveur auquel nous essayons d’accéder.

Obtention du certificat du serveur

Lorsque nous appelons un point de terminaison HTTPS en utilisant le SSL unidirectionnel, le client valide le certificat du serveur récepteur avec le certificat dont il dispose. Par conséquent, nous devons enregistrer le certificat de serveur partagé dans le client.

A lire également :  Veeam Cloud Connect pour protéger des données du Cloud

Pour récupérer une liste de certificats de serveur, nous utiliserons la commande OpenSSL, avec l’argument -showcerts :
freestar

openssl s_client -showcerts -connect :

L’option -showcerts imprime la chaîne de certificats complète. Nous pouvons enregistrer les certificats dans un fichier pour invoquer le point de terminaison :

openssl s_client -showcerts -connect https://localhost:8443/baeldung baeldung.pem

Appeler un point de terminaison HTTPS

Pour invoquer le point de terminaison HTTPS, nous allons d’abord enregistrer le certificat du serveur baeldung.pem depuis le serveur local en utilisant la commande OpenSSL ou le fichier keystore.

Ensuite, nous utiliserons le certificat du serveur dans la requête curl avec l’option -cacert :

curl –cacert baeldung.pem https://localhost:8443/baeldung

Conclusion

Dans ce tutoriel, nous avons décrit comment invoquer un point de terminaison HTTPS à l’aide de l’outil curl.