Recherche de site Web

Comment installer Curl avec le backend GnuTLS sur Debian


Lorsque vous installez curl en utilisant le gestionnaire de paquets par défaut dans des distributions Linux comme Debian, il est généralement précompilé avec OpenSSL comme moteur TLS. Parce que presque tous les distributeurs/emballeurs de curl construisent Curl avec le moteur OpenSSL. Changer pour un autre moteur TLS n'est pas aussi simple que de sélectionner simplement une autre option, mais c'est possible. Dans ce tutoriel étape par étape, nous verrons comment installer curl avec le moteur GnuTLS dans Debian.

Avant d'entrer dans le sujet, permettez-moi de vous donner une brève introduction au backend TLS et à la liste des backends TLS pris en charge par Curl.

Qu'est-ce qu'un backend TLS ?

Lorsque vous compilez curl à partir du source, il a besoin d'un moyen pour gérer les connexions sécurisées (HTTPS). Cela se fait via un backend TLS. TLS (Transport Layer Security) est essentiel pour la communication sécurisée sur les réseaux.

Curl prend en charge plusieurs bibliothèques ou backends TLS. Voici la liste des backends pris en charge :

1. AmiSSL

AmiSSL est une implémentation SSL/TLS pour les systèmes AmigaOS. Il n'est pas couramment utilisé sauf si vous développez pour les plateformes Amiga. Pour compiler Curl avec AmiSSL, vous pouvez utiliser l'option --with-amissl.

2. BearSSL

BearSSL est une bibliothèque SSL/TLS plus petite et plus ciblée. Elle est conçue pour être légère et adaptée aux systèmes embarqués. Pour installer Curl avec BearSSL, utilisez l'option --with-bearssl.

3. GnuTLS

GnuTLS est une bibliothèque de communication sécurisée implémentant les protocoles SSL, TLS et DTLS. C'est une alternative open-source populaire à OpenSSL. Pour installer Curl avec GnuTLS, vous pouvez utiliser l'option --with-gnutls.

4. Mbed TLS

Mbed TLS (anciennement connu sous le nom de PolarSSL) est une bibliothèque SSL open source, portable, facile à utiliser, lisible et flexible. Elle est souvent utilisée dans les systèmes embarqués et les appareils IoT. Pour installer Curl avec Mbed TLS, utilisez --with-mbedtls.

5. OpenSSL

OpenSSL est l'une des bibliothèques TLS les plus utilisées. Cette option fonctionne également pour BoringSSL (le fork d'OpenSSL de Google) et LibreSSL (le fork d'OpenSSL de OpenBSD). Vous pouvez utiliser --with-openssl pour installer Curl avec OpenSSL.

6. Rustls

Rustls est une bibliothèque TLS moderne écrite en Rust. Elle vise à fournir une implémentation plus sûre et plus efficace. Pour installer Curl avec Rustls, utilisez --with-rustls.

7. Schannel

Schannel est le fournisseur de support de sécurité (SSP) pour les systèmes d'exploitation Windows. Il est utilisé lors de la construction de curl pour les plateformes Windows. Pour installer Curl avec Schannel, utilisez --with-schannel.

8. Transport sécurisé

Secure Transport est l'implémentation TLS d'Apple. Cette option est utilisée lors de la compilation de curl pour macOS ou iOS. Nous pouvons installer Curl avec le backend Secure Transport en utilisant l'option --with-secure-transport.

9. wolfSSL

wolfSSL (anciennement CyaSSL) est une bibliothèque SSL/TLS légère, portable et basée sur le langage C, destinée aux environnements IoT, embarqués et RTOS. Pour installer Curl avec wolfSSL, utilisez --with-wolfssl.

Choisir le bon backend TLS

  • OpenSSL (--with-openssl) : Il s'agit généralement du choix le plus courant et le plus largement pris en charge. Il offre un ensemble de fonctionnalités robuste et est bien testé dans divers environnements.
  • GnuTLS (--with-gnutls) : Un autre choix solide, surtout si vous préférez éviter OpenSSL en raison de sa licence ou d'autres considérations. GnuTLS est reconnu pour son accent sur la sécurité et est utilisé par de nombreuses distributions Linux.
  • Autres Backends : Choisissez ceux-ci si vous avez des exigences ou des préférences spécifiques basées sur la compatibilité de la plateforme, les licences ou les considérations de performance.

Exemple d'utilisation

Pour compiler curl avec un backend TLS spécifique, vous utiliseriez généralement le script ./configure avec l'option --with-<backend> appropriée. Par exemple :

./configure --with-openssl

Cette commande configure curl pour utiliser OpenSSL comme moteur TLS. Remplacez openssl par votre option de moteur préférée parmi la liste ci-dessus.

Installer Curl à partir des sources avec GnuTLS en utilisant GNU Stow

Debian fournit en réalité deux versions de libcurl : une construite avec OpenSSL et une autre avec GnuTLS. L'outil en ligne de commande curl se lie généralement à la version OpenSSL par défaut, mais vous pouvez utiliser à la place la version GnuTLS.

Vérifions la version de Curl en utilisant la commande sous Debian 12 :

$ curl -V 

Exemple de sortie :

curl 8.8.0 (x86_64-pc-linux-gnu) libcurl/8.8.0 OpenSSL/3.0.13 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4  
libidn2/2.3.3 libpsl/0.21.2 libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13  
Release-Date: 2024-05-22, security patched: 8.8.0-1~bpo12+1  
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3  
pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp  
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz  
NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

Curl avec backend OpenSSL

Comme vous le voyez dans la sortie ci-dessus, mon système Debian 12 dispose de la dernière version de Curl 8.8.0 avec le backend OpenSSL.

Voyons maintenant comment compiler Curl à partir du code source avec GnuTLS en utilisant GNU Stow. Pour ceux qui se posent la question, GNU Stow est l'une des manières recommandées pour installer les derniers logiciels à partir du code source sur Debian et d'autres distributions Linux.

1. Prérequis

Assurez-vous d'avoir installé les outils et dépendances nécessaires :

sudo apt update
sudo apt install build-essential libgnutls28-dev stow

2. Télécharger la dernière archive Tar de Curl et l'extraire

Téléchargez la dernière version de Curl depuis le dépôt GitHub de Curl :

wget https://github.com/curl/curl/releases/download/curl-8_8_0/curl-8.8.0.tar.gz

Extraire le code source de curl :

tar -xzvf curl-8.8.0.tar.gz

Cette commande extraira le contenu du fichier tar dans un répertoire nommé curl-8.8.0. Entrez dans le répertoire :

cd curl-8.8.0

3. Configurer la compilation avec le préfixe

Configurez la compilation pour utiliser le backend GnuTLS en utilisant la commande :

./configure --with-gnutls --prefix=/usr/local/stow/curl-8.8.0

Si le répertoire /usr/loca/stow n'existe pas, il suffit de le créer en utilisant la commande :

sudo mkdir -p /usr/local/stow

Encore une fois, relancez la commande ./configure.

4. Compiler et installer Curl en utilisant Stow

Exécutez la commande suivante pour compiler et installer Curl en utilisant GNU Stow

make
sudo make install

5. Utilisez stow pour créer les liens symboliques

Allez dans le répertoire /usr/loca/stow et créez les liens symboliques nécessaires :

cd /usr/local/stow
sudo stow curl-8.8.0

6. Vérifier l'installation de Curl

Redémarrez votre session en cours et vérifiez que curl utilise GnuTLS :

curl --version

Vous devriez considérer GnuTLS comme le nouveau moteur TLS.

curl 8.8.0 (x86_64-pc-linux-gnu) libcurl/8.8.0 GnuTLS/3.7.9 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3  
Release-Date: 2024-05-22  
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smt  
p smtps telnet tftp  
Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IDN IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSo  
ckets zstd
Curl avec backend GnuTLS

Comme vous le voyez dans la sortie ci-dessus, Curl est configuré avec GnuTLS v3.7.9.

Dépannage

Si vous rencontrez le problème « Dépendances non satisfaites » en essayant d'installer curl sur votre système Debian 12 ou si la commande de mise à jour flatpak ne fonctionne pas après avoir mis à jour Curl depuis les backports, consultez les liens suivants :

  • Corriger l'erreur « Dépendances non satisfaites » lors de l'installation de Curl sur Debian 12
  • La mise à jour de Flatpak échoue après la mise à niveau de Curl vers 8.10 sous Debian

Conclusion

Dans ce tutoriel étape par étape, nous avons discuté de la liste des backends TLS disponibles et de la manière d'installer Curl avec le backend GnuTLS à partir des sources en utilisant GNU Stow sur Debian et ses dérivés.

Si vous ne le savez pas déjà, le Curl de Debian est sur le point d'obtenir le support HTTP3. Pour plus de détails, consultez le lien suivant :

  • Debian Curl prend désormais en charge HTTP3 : ce que vous devez savoir

Lecture liée :

  • Wcurl : un wrapper Curl convivial pour des téléchargements de fichiers faciles