Wie man Curl mit GnuTLS-Backend in Debian installiert
Wenn Sie curl mit dem Standard-Paketmanager in Linux-Distributionen wie Debian installieren, wird es typischerweise vorcompiliert mit OpenSSL als TLS-Backend geliefert. Da fast jeder curl-Distributor/-Packer Curl mit OpenSSL-Backend erstellt, ist ein Wechsel zu einem anderen TLS-Backend nicht so einfach wie das Auswählen einer anderen Option, aber es ist möglich. In diesem Schritt-für-Schritt-Tutorial werden wir sehen, wie man curl mit GnuTLS-Backend in Debian installiert.
Bevor wir in das Thema einsteigen, lassen Sie mich Ihnen eine kurze Einführung in das TLS-Backend und die Liste der von Curl unterstützten TLS-Backends geben.
Was ist ein TLS-Backend?
Wenn Sie curl aus dem Quellcode kompilieren, benötigt es eine Möglichkeit, sichere Verbindungen (HTTPS) zu handhaben. Dies geschieht über ein TLS-Backend. TLS (Transport Layer Security) ist für sichere Kommunikation über Netzwerke unerlässlich.
Curl unterstützt mehrere TLS-Bibliotheken oder Backends. Hier ist die Liste der unterstützten Backends:
1. AmiSSL
AmiSSL ist eine SSL/TLS-Implementierung für AmigaOS-Systeme. Es wird nicht häufig verwendet, es sei denn, Sie entwickeln für Amiga-Plattformen. Um Curl mit AmiSSL zu kompilieren, können Sie die Option --with-amissl verwenden.
2. BearSSL
BearSSL ist eine kleinere, fokussiertere SSL/TLS-Bibliothek. Sie ist darauf ausgelegt, leichtgewichtig und für eingebettete Systeme geeignet zu sein. Um Curl mit BearSSL zu installieren, verwenden Sie die Option --with-bearssl.
3. GnuTLS
GnuTLS ist eine sichere Kommunikationsbibliothek, die die SSL-, TLS- und DTLS-Protokolle implementiert. Es ist eine beliebte Open-Source-Alternative zu OpenSSL. Um Curl mit GnuTLS zu installieren, können Sie die Option --with-gnutls verwenden.
4. Mbed TLS
Mbed TLS (früher bekannt als PolarSSL) ist eine Open-Source-, tragbare, einfach zu verwendende, lesbare und flexible SSL-Bibliothek. Sie wird häufig in eingebetteten Systemen und IoT-Geräten verwendet. Um Curl mit Mbed TLS zu installieren, verwenden Sie --with-mbedtls.
5. OpenSSL
OpenSSL ist eine der am weitesten verbreiteten TLS-Bibliotheken. Diese Option funktioniert auch für BoringSSL (Googles Fork von OpenSSL) und LibreSSL (OpenBSDs Fork von OpenSSL). Sie können --with-openssl verwenden, um Curl mit OpenSSL zu installieren.
6. Rost
Rustls ist eine moderne TLS-Bibliothek, die in Rust geschrieben wurde. Sie zielt darauf ab, eine sicherere und effizientere Implementierung bereitzustellen. Um Curl mit Rustls zu installieren, verwenden Sie --with-rustls.
7. Schannel
Schannel ist der Security Support Provider (SSP) für Windows-Betriebssysteme. Er wird verwendet, wenn Curl für Windows-Plattformen erstellt wird. Um Curl mit Schannel zu installieren, verwenden Sie --with-schannel.
8. Sicherer Transport
Secure Transport ist Apples TLS-Implementierung. Diese Option wird beim Erstellen von Curl für macOS oder iOS verwendet. Wir können Curl mit Secure-Transport-Backend unter Verwendung der Option --with-secure-transport installieren.
9. wolfSSL
wolfSSL (ehemals CyaSSL) ist eine leichte, portable SSL/TLS-Bibliothek auf C-Sprachbasis, die für IoT-, Embedded- und RTOS-Umgebungen entwickelt wurde. Um Curl mit wolfSSL zu installieren, verwenden Sie --with-wolfssl.
Die richtige TLS-Backend auswählen
- OpenSSL (
--with-openssl): Dies ist typischerweise die gebräuchlichste und am weitesten unterstützte Wahl. Es bietet ein robustes Funktionsspektrum und ist in verschiedenen Umgebungen gut getestet. - GnuTLS (
--with-gnutls): Eine weitere solide Wahl, besonders wenn Sie OpenSSL aufgrund seiner Lizenz oder anderer Überlegungen vermeiden möchten. GnuTLS ist bekannt für seinen Fokus auf Sicherheit und wird von vielen Linux-Distributionen verwendet. - Andere Backends: Wählen Sie diese, wenn Sie spezifische Anforderungen oder Vorlieben basierend auf Plattformkompatibilität, Lizenzierung oder Leistungsaspekten haben.
Beispielverwendung
Um curl mit einem spezifischen TLS-Backend zu kompilieren, würden Sie typischerweise das ./configure-Skript mit der entsprechenden --with-<backend>-Option verwenden. Zum Beispiel:
./configure --with-opensslDieser Befehl konfiguriert curl, um OpenSSL als TLS-Backend zu verwenden. Ersetzen Sie openssl durch Ihre bevorzugte Backend-Option aus der obigen Liste.
Curl aus dem Quellcode mit GnuTLS unter Verwendung von GNU Stow installieren
Debian bietet tatsächlich zwei Versionen von libcurl an: eine, die mit OpenSSL gebaut wurde, und eine andere mit GnuTLS. Das curl-Kommandozeilenwerkzeug ist standardmäßig normalerweise mit der OpenSSL-Version verlinkt, aber Sie können stattdessen die GnuTLS-Version verwenden.
Lassen Sie uns die Curl-Version mit dem Befehl in Debian 12 überprüfen:
$ curl -V Beispielausgabe:
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 zstdWie Sie in der obigen Ausgabe sehen, hat mein Debian 12 System das neueste Curl 8.8.0 mit OpenSSL-Backend.
Lassen Sie uns nun sehen, wie man Curl aus dem Quellcode mit GnuTLS unter Verwendung von GNU Stow kompiliert. Für diejenigen, die sich fragen, ist GNU Stow eine der empfohlenen Methoden, um die neueste Software aus dem Quellcode in Debian und anderen Linux-Distributionen zu installieren.
1. Voraussetzungen
Stellen Sie sicher, dass Sie die notwendigen Werkzeuge und Abhängigkeiten installiert haben:
sudo apt update
sudo apt install build-essential libgnutls28-dev stow2. Lade die neueste Curl-Tar-Datei herunter und entpacke sie
Laden Sie das neueste Curl aus dem Curl GitHub Repository herunter:
wget https://github.com/curl/curl/releases/download/curl-8_8_0/curl-8.8.0.tar.gzExtrahiere den Curl-Quellcode:
tar -xzvf curl-8.8.0.tar.gzDieser Befehl extrahiert den Inhalt der Tar-Datei in ein Verzeichnis namens curl-8.8.0. Wechsle in das Verzeichnis:
cd curl-8.8.03. Konfigurieren Sie den Build mit Präfix
Konfigurieren Sie den Build so, dass das GnuTLS-Backend mit dem Befehl verwendet wird:
./configure --with-gnutls --prefix=/usr/local/stow/curl-8.8.0Wenn das Verzeichnis /usr/loca/stow nicht existiert, erstellen Sie es einfach mit dem Befehl:
sudo mkdir -p /usr/local/stowFühren Sie erneut den Befehl ./configure aus.
4. Curl mit Stow kompilieren und installieren
Führen Sie den folgenden Befehl aus, um Curl mit GNU Stow zu kompilieren und zu installieren
make
sudo make install5. Verwenden Sie stow, um die Symlinks zu erstellen
Wechseln Sie in das Verzeichnis /usr/loca/stow und erstellen Sie die notwendigen Symlinks:
cd /usr/local/stow
sudo stow curl-8.8.06. Überprüfung der Curl-Installation
Starten Sie Ihre aktuelle Sitzung neu und überprüfen Sie, dass curl GnuTLS verwendet:
curl --versionSie sollten GnuTLS als das neue TLS-Backend sehen.
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 zstdWie Sie in der obigen Ausgabe sehen, ist Curl mit GnuTLS v3.7.9 konfiguriert.
Fehlerbehebung
Wenn Sie auf das "Unmet Dependencies"-Problem stoßen, während Sie versuchen, curl auf Ihrem Debian 12-System zu installieren, oder wenn der flatpak update-Befehl nach dem Upgrade von Curl aus den Backports nicht funktioniert, beziehen Sie sich auf die folgenden Links:
- Behebe den Fehler "Unerfüllte Abhängigkeiten", wenn Curl unter Debian 12 installiert wird
- Flatpak-Aktualisierung schlägt fehl nach dem Upgrade von Curl auf 8,10 in Debian
Fazit
In diesem Schritt-für-Schritt-Tutorial haben wir die Liste der verfügbaren TLS-Backends besprochen und wie man Curl mit dem GnuTLS-Backend aus dem Quellcode unter Verwendung von GNU Stow in Debian und seinen Derivaten installiert.
Falls Sie es noch nicht wissen, wird Debians Curl bald HTTP3-Unterstützung erhalten. Für weitere Details siehe den folgenden Link:
- Debian Curl unterstützt jetzt HTTP3: Was Sie wissen müssen
Verwandte Lektüre:
- Wcurl: Eine benutzerfreundliche Curl-Wrapper für einfache Dateidownloads
