OpenSSL ist eine weit verbreitete Krypto-Bibliothek, die SSL- und TLS-Protokolle für die sichere Kommunikation über Computernetzwerke implementiert. OpenSSL wird von vielen Programmen wie Apache Webserver, PHP, Postfix und vielen anderen verwendet. OpenSSL bietet Unterstützung für verschiedene kryptografische Algorithmen wie Chiffren (AES, Blowfish, DES, IDEA usw.), kryptografische Hashfunktionen (MD5, MD4, SHA-1, SHA-2 usw.) und Public-Key-Kryptografie (RSA, DSA, Diffie-Hellman-Schlüsselaustausch).
In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie die neueste stabile OpenSSL-Version aus dem Quellcode auf Ubuntu 18.04- und CentOS 7.6-Servern installieren können.
Was werden wir tun?
- Abhängigkeiten installieren
- OpenSSL Quellcode herunterladen
- OpenSSL installieren
- Kompilieren und OpenSSL installieren
- Link-Bibliotheken konfigurieren
- OpenSSL Binary konfigurieren
- Testen
Schritt 1 – Abhängigkeiten installieren
Der erste Schritt, bevor wir die OpenSSL-Bibliothek aus dem Quellcode kompilieren können, ist es, einige Paketabhängigkeiten zu installieren, einschließlich des „build-essential“-Pakets auf Ubuntu oder des „Development Tools“-Pakets auf CentOS.
Auf Ubuntu
Aktualisieren Sie das Ubuntu-Repository und installieren Sie Paketabhängigkeiten für die Softwarekompilierung mit dem unten stehenden apt-Befehl.
sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y
Auf CentOS
Installieren Sie die ‚Development Tools‘ und einige Paketbibliotheken mit dem yum-Befehl.
yum group install 'Development Tools'
yum install perl-core zlib-devel -y
Nachdem die Installation abgeschlossen ist, gehen Sie zum nächsten Schritt über.
Schritt 2 – OpenSSL herunterladen
In diesem Tutorial werden wir die neueste stabile Version von OpenSSL installieren – OpenSSL 1.0.2o. Sie können den Quellcode von der OpenSSL-Website herunterladen.
Gehen Sie zum Verzeichnis ‚/usr/local/src‘ und laden Sie den OpenSSL-Quellcode mit wget herunter.
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
Jetzt extrahieren Sie die Datei openssl.tar.gz und gehen Sie in das Verzeichnis ‚openssl‘.
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
Der OpenSSL-Quellcode wurde heruntergeladen.
Schritt 3 – OpenSSL installieren
Bevor die benutzerdefinierte OpenSSL-Version auf dem System installiert wird, überprüfen wir die installierte Version mit dem folgenden Befehl.
openssl version -a
Nachfolgend meine Ergebnisse auf Ubuntu:
Und dies ist auf CentOS:
Wir werden die ‚1.1.0g‘ Version mit der neuesten stabilen Version 1.0.2o.
Wir werden die neue OpenSSL-Version in das spezielle Verzeichnis ‚/usr/local/ssl‘ installieren und dann die Link-Bibliotheken von OpenSSL aktivieren und den neuen Binärpfad für OpenSSL konfigurieren.
OpenSSL installieren und kompilieren
Gehen Sie zum heruntergeladenen OpenSSL-Verzeichnis ‚/usr/local/src/openssl‘.
cd /usr/local/src/openssl-1.0.2o
Konfigurieren und kompilieren Sie OpenSSL mit folgenden Befehlen.
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
Warten Sie auf den OpenSSL Kompilierprozess.
Hinweis:
- –prefix und –openssldir = Legen Sie den Ausgabepfad von OpenSSL fest.
- shared = Erzwingen Sie die Erstellung einer Shared Library.
- zlib = aktiviert die Kompression mit der zlib-Bibliothek.
Wenn der Kompiliervorgang abgeschlossen ist, installieren Sie OpenSSL mit dem folgenden Befehl.
make install
OpenSSL wird im Verzeichnis ‚/usr/local/ssl‘ installiert.
Link-Bibliotheken konfigurieren
Als nächstes konfigurieren wir die Shared Libraries für OpenSSL. Die neue OpenSSL-Binärdatei wird Bibliotheksdateien aus dem Verzeichnis ‚/usr/local/ssl/lib‘ laden.
Gehen Sie zum Verzeichnis ‚/etc/ld.so.conf.d‘ und erstellen Sie eine neue Konfigurationsdatei ‚openssl-1.0.2o.conf‘.
cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf
Fügen Sie das Verzeichnis mit den OpenSSL-Bibliotheken ein.
/usr/local/ssl/lib
Speichern und beenden.
Nun laden Sie den dynamischen Link mit dem folgenden Befehl neu.
sudo ldconfig -v
Und Sie werden sehen, dass die OpenSSL-Bibliotheken in das Verzeichnis ‚/usr/local/ssl/lib‘ geladen wurden.
Ubuntu:
CentOS:
OpenSSL Binary konfigurieren
Wir werden das Standard-OpenSSL-Binary ‚/usr/bin/openssl oder /bin/openssl‘ durch die neue Version ‚/usr/local/ssl/bin/openssl‘ ersetzen.
Auf Ubuntu 18.04 LTS
Sichern Sie die Binärdateien.
mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP
Bearbeiten Sie die Datei „/etc/environment“ mit vim.
vim /etc/environment
Fügen Sie nun das neue OpenSSL-Binärverzeichnis wie folgt hinzu
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
Speichern und beenden.
Laden Sie die Umgebungsdatei neu und testen Sie den neuen aktualisierten Binärpfad.
source /etc/environment
echo $PATH
Überprüfen Sie nun erneut die OpenSSL-Binärdatei.
which openssl
Sie erhalten das folgende Ergebnis.
Der Binärpfad von OpenSSL für Ubuntu wurde aktualisiert.
Auf CentOS 7.6
Sichern Sie die CentOS OpenSSL-Binärdateien.
mv /bin/openssl /bin/openssl.BEKUP
Erstellen Sie neue Umgebungsdateien für OpenSSL.
vim /etc/profile.d/openssl.sh
Fügen Sie die Konfiguration unten ein.
#Set OPENSSL_PATHOPENSSL_PATH="/usr/local/ssl/bin"export OPENSSL_PATHPATH=$PATH:$OPENSSL_PATHexport PATH
Speichern und beenden.
Machen Sie die Datei openssl.sh ausführbar.
chmod +x /etc/profile.d/openssl.sh
Laden Sie die OpenSSL-Umgebung und überprüfen Sie das PATH-Bin-Verzeichnis mit den folgenden Befehlen.
source /etc/profile.d/openssl.sh
echo $PATH
Überprüfen Sie nun die OpenSSL-Datei.
which openssl
Sie erhalten das folgende Ergebnis.
Der Binärpfad für OpenSSL auf CentOS wurde aktualisiert.
Schritt 4 – Testen
Testen Sie die neue Version von OpenSSL mit dem folgenden Befehl.
openssl version -a
Das Ergebnis unter Ubuntu.
Ergebnis unter CentOS.