OpenSSL jest szeroko stosowaną biblioteką kryptograficzną, która implementuje protokoły SSL i TLS do bezpiecznej komunikacji w sieciach komputerowych. OpenSSL jest wykorzystywany przez wiele programów takich jak serwer WWW Apache, PHP, Postfix i wiele innych. OpenSSL zapewnia wsparcie dla różnych algorytmów kryptograficznych, takich jak szyfry (AES, Blowfish, DES, IDEA itp.), kryptograficzne funkcje haszujące (MD5, MD4, SHA-1, SHA-2 itp.) i kryptografia klucza publicznego (RSA, DSA, wymiana klucza Diffie-Hellmana).
W tym poradniku pokażę krok po kroku, jak zainstalować najnowszą stabilną wersję OpenSSL ze źródła na serwerach Ubuntu 18.04 i CentOS 7.6.
Co będziemy robić?
- Install Dependencies
- Download OpenSSL Source Code
- Install OpenSSL
- Compile and Install OpenSSL
- Configure Link Libraries
- Configure OpenSSL Binary
- Testing
Krok 1 – Instalowanie zależności Install Dependencies
Pierwszy krok, zanim będziemy mogli skompilować bibliotekę OpenSSL ze źródła, jest zainstalowanie niektórych zależności pakietowych, w tym pakietu 'build-essential’ w Ubuntu, lub pakietu 'Development Tools’ w CentOS.
Na Ubuntu
Uaktualnij repozytorium Ubuntu i zainstaluj zależności pakietów do kompilacji oprogramowania za pomocą poniższego polecenia apt.
sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y
Na CentOS
Zainstaluj 'Development Tools’ i niektóre pakiety bibliotek za pomocą polecenia yum.
yum group install 'Development Tools'
yum install perl-core zlib-devel -y
Po zakończeniu instalacji, przejdź do następnego kroku.
Krok 2 – Pobierz OpenSSL
W tym poradniku, zainstalujemy najnowszą stabilną wersję OpenSSL – OpenSSL 1.0.2o. Możesz pobrać kod źródłowy ze strony OpenSSL.
Przejdź do katalogu '/usr/local/src’ i pobierz kod źródłowy OpenSSL używając wget.
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
Następnie rozpakuj plik openssl.tar.gz, i przejdź do katalogu 'openssl’.
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
Kod źródłowy OpenSSL został pobrany.
Krok 3 – Zainstaluj OpenSSL
Przed zainstalowaniem własnej wersji OpenSSL w systemie, sprawdźmy zainstalowaną wersję używając poniższego polecenia.
openssl version -a
Poniżej przedstawiam moje wyniki na Ubuntu:
A to jest na CentOS:
Zastąpimy wersję '1.1.0g’ najnowszą stabilną wersją 1.0.2o.
Zainstalujemy nową wersję OpenSSL do określonego katalogu '/usr/local/ssl’, a następnie włączymy biblioteki linków OpenSSL i skonfigurujemy nową binarną PATH dla OpenSSL.
Instalacja i kompilacja OpenSSL
Przejdź do katalogu '/usr/local/src/openssl’.
cd /usr/local/src/openssl-1.0.2o
Skonfiguruj i skompiluj OpenSSL za pomocą poniższych poleceń.
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
Poczekaj na proces kompilacji OpenSSL.
Uwaga:
- –prefix i –openssldir = ustaw ścieżkę wyjściową OpenSSL.
- shared = wymuś utworzenie biblioteki współdzielonej.
- zlib = włącz kompresję przy użyciu biblioteki zlib.
Po zakończeniu procesu kompilacji, zainstaluj OpenSSL używając poniższego polecenia.
make install
OpenSSL jest zainstalowany w katalogu '/usr/local/ssl’.
Konfiguracja bibliotek łączących
Następnie skonfigurujemy biblioteki współdzielone dla OpenSSL. Nowa binarka OpenSSL będzie ładowała pliki bibliotek z katalogu '/usr/local/ssl/lib’.
Przejdziemy do katalogu '/etc/ld.so.conf.d’ i utworzymy nowy plik konfiguracyjny 'openssl-1.0.2o.conf’.
cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf
Wkleimy katalog ze ścieżką bibliotek openssl.
/usr/local/ssl/lib
Zapisz i wyjdź.
Teraz przeładuj dynamiczny link używając poniższego polecenia.
sudo ldconfig -v
I zobaczysz, że biblioteki OpenSSL w katalogu '/usr/local/ssl/lib’ zostały załadowane.
Ubuntu:
CentOS:
Konfiguracja OpenSSL Binary
Zastąpimy domyślną binarkę openssl '/usr/bin/openssl lub /bin/openssl’ nową wersją '/usr/local/ssl/bin/openssl’.
Na Ubuntu 18.04 LTS
Zrób kopię zapasową plików binarnych.
mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP
Edytuj plik '/etc/environment’ używając vim.
vim /etc/environment
Teraz dodaj nowy katalog binarny OpenSSL jak poniżej
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
Zapisz i zakończ.
Odśwież plik środowiska i przetestuj nową zaktualizowaną PATH binarną.
source /etc/environment
echo $PATH
Teraz sprawdź ponownie plik binarny OpenSSL.
which openssl
Uzyskasz wynik jak poniżej.
Ścieżka binarna OpenSSL dla Ubuntu została zaktualizowana.
Na CentOS 7.6
Backup plików binarnych CentOS OpenSSL.
mv /bin/openssl /bin/openssl.BEKUP
Utwórz nowe pliki środowiska dla OpenSSL.
vim /etc/profile.d/openssl.sh
Wklej poniższą konfigurację.
#Set OPENSSL_PATHOPENSSL_PATH="/usr/local/ssl/bin"export OPENSSL_PATHPATH=$PATH:$OPENSSL_PATHexport PATH
Zapisz i wyjdź.
Uczyń plik openssl.sh wykonywalnym.
chmod +x /etc/profile.d/openssl.sh
Załaduj środowisko OpenSSL i sprawdź katalog PATH bin, używając poniższych poleceń.
source /etc/profile.d/openssl.sh
echo $PATH
Teraz sprawdź plik OpenSSL.
which openssl
Uzyskasz wynik jak poniżej.
Ścieżka binarna dla OpenSSL w systemie CentOS została zaktualizowana.
Krok 4 – Testowanie
Sprawdź nową wersję OpenSSL używając następującej komendy.
openssl version -a
Wynik na Ubuntu.
Wynik na CentOS.
.