Ricompilare OpenSSL 1.1 e NGINX 1.25 per TLS 1.3 (CentOS 7)

Ricompilare OpenSSL 1.1 & NGINX 1.25 per TLS 1.3 (CentOS 7), seguendo lo scenario in cui hai già installato sul server o versione precedente openssl associato al servizio nginx.

Più specificamente, essere in grado di attivare OpenSSL 1.1.1t per il servizio NGINX, che viene eseguito con una versione precedente. OpenSSL 1.0.2k.

# nginx -V
nginx version: nginx/1.25.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
# openssl version -a
OpenSSL 1.1.1t  7 Feb 2023

Ciò significa che esistono due diverse versioni di OpenSSL. Una versione installata sul sistema da “yum"(1.0.2k-fips) e una versione OpenSSL installato tramite compilazione manuale (openssl 1.1.1t).

Classicamente, la maggior parte consiglia di reinstallare 'OpenSSL' a livello di server. Ciò comporterebbe l'esecuzione del comando: yum remove openssl. Ma qui c'è un grosso problema. Con la disinstallazione della vecchia versione OpenSSL, potrebbe anche essere necessario disinstallare alcune app dipendenti. Ad esempio: nginx, MariaDB-server, cerbotE molto altro ancora.

Una soluzione più semplice è ricompilare openssl 1.1 & nginx 1.25 per TLS 1.3.

Tutorial sulla ricompilazione OpenSSL 1.1 & NGINX 1.25 per TLS 1.3 (CentOS 7)

Nel mio esempio, la ricompilazione è per nginx/1.25.0 & OpenSSL 1.1.1h utilizzando le librerie OpenSSL 1.1.1t.

Ricompila NGINX.

1. Crea il file: nginx-with-tls13-compile.sh

sudo nano nginx-with-tls13-compile.sh

dove aggiungi lo script:

#!/bin/bash

## nginx
NGINX=nginx-1.25.0.tar.gz

if [ ! -f "${NGINX}" ];then
    wget https://nginx.org/download/${NGINX}
fi

ND=$(basename $NGINX .tar.gz)
if [ ! -d "${ND}" ];then
    tar zxvf ${NGINX}
fi

cd ${ND}

## pre require package
## yum install gcc pcre-devel zlib-devel

./configure --prefix=/etc/nginx \
    --sbin-path=/usr/sbin/nginx \
    --modules-path=/usr/lib64/nginx/modules  \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --pid-path=/var/run/nginx.pid \
    --lock-path=/var/run/nginx.lock \
    --http-client-body-temp-path=/var/cache/nginx/client_temp \
    --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
    --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
    --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
    --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
    --user=nginx \
    --group=nginx \
    --with-compat \
    --with-file-aio \
    --with-threads \
    --with-http_addition_module \
    --with-http_auth_request_module \
    --with-http_dav_module \
    --with-http_flv_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_mp4_module \
    --with-http_random_index_module \
    --with-http_realip_module \
    --with-http_secure_link_module \
    --with-http_slice_module \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-http_sub_module \
    --with-http_v2_module \
    --with-mail \
    --with-mail_ssl_module \
    --with-stream \
    --with-stream_realip_module \
    --with-stream_ssl_module \
    --with-stream_ssl_preread_module \
    --with-openssl=../$(basename $OPENSSL .tar.gz)
    
make

sudo make install

nginx -V

Salva il nuovo file.

2. Crea il nuovo file eseguibile:

chmod +x nginx-with-tls13-compile.sh

Riscrivere nginx.service

3. Fai un backup di nginx.service.

cat /lib/systemd/system/nginx.service > /srv/nginx_service.txt

(puoi scegliere qualsiasi percorso tu voglia per nginx_service.txt)

4. Creare il file per il servizio nginx: nginx.service

sudo nano nginx.service

5. Nel file il nuovo file nginx.service aggiungi le righe:

##  /lib/systemd/system/nginx.service

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

6. Copia il file in 'daemon".

sudo cp nginx.service /lib/systemd/system/nginx.service

7. Dopo che il file è stato copiato, aggiornare le autorizzazioni del file utilizzando il comando:

sudo chmod 644 /lib/systemd/system/nginx.service

8. Ricaricare la configurazione systemd per prendere in considerazione le modifiche utilizzando il comando:

sudo systemctl daemon-reload

9. Riavvia ngnix.

sudo systemctl restart nginx

Ricompilare OpenSSL / NGINX per TLS 1.3

10. Nella stessa cartella in cui hai i file nginx-with-tls13-compile.sh şi nginx.service, crea un nuovo file: openssl-1.1-compile.sh.

sudo nano openssl-1.1-compile.sh

Aggiungi la sceneggiatura:

#!/bin/bash

## Compile OpenSSL
OPENSSL=openssl-1.1.1h.tar.gz

DONE=openssl-compile-done

if [ ! -f "${DONE}" ] ;then
    wget https://www.openssl.org/source/${OPENSSL}

    tar zxvf ${OPENSSL}

    cd $(basename $OPENSSL .tar.gz)

    ./config shared no-idea no-md2 no-mdc2 no-rc5 no-rc4 --prefix=/usr/local/

    make

    sudo make install

    cd ..

    touch ${DONE}
fi

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64/

read -n1 -r -p "$(/usr/local/bin/openssl version) - Press any key to continue..." key

source ./nginx-with-tls13-compile.sh

Sostituire "OPENSSL=openssl-1.1.1h.tar.gz” con la versione che vuoi installare e ricompila con NGINX.

11. Rendere eseguibile lo script:

chmod +x openssl-1.1-compile.sh

12. Eseguire il comando:

./openssl-1.1-compile.sh

Attendere il completamento del processo di ricompilazione OpenSSL & NGINX.

Ricompilare OpenSSL 1.1 e NGINX 1.25 per TLS 1.3 (CentOS 7)
OpenSSL & NGINX

Se possiamo aiutarti o ci sono delle aggiunte da fare, la sezione dei commenti è aperta.

Appassionato di tecnologia, scrivo con piacere su StealthSettings.com dal 2006. Troverai articoli sui sistemi operativi scritti da me Windows, Linux, macOS, ma anche su piattaforme web come WordPress şi WooCommerce

Come » Linux » Ricompilare OpenSSL 1.1 e NGINX 1.25 per TLS 1.3 (CentOS 7)

Lascia un tuo commento