RECOMPILARE OPENSSL 1.1 & Ningin 1,25 for TLS 1,3 (Centos 7)

kompil OpenSSL 1.1 & NGINX 1.25 til TLS 1.3 (CentOS 7), etter scenariet du allerede har installert på serveren o eldre versjon openssl tilknyttet Nginx -tjeneste.

Mer spesifikt kan du aktivere OpenSSL 1.1.1t for tjenesten NGINX, kjører med en eldre versjon. 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

Dette betyr at det på serveren er to forskjellige versjoner av OpenSSL. En versjon installert på systemet av “yum” (1.0.2k-fips) og en versjon OpenSSL installert av manuell kompilering (openssl 1.1.1t).

Klassisk anbefaler de fleste på nytt ‘OpenSSL‘ På nivået av serveren. Det vil innebære ordreutførelsen: yum remove openssl. Men det er et stort problem her. Med avinstallering av den gamle versjonen OpenSSL, kan det også være nødvendig å avinstallere avhengige applikasjoner. Like: nginx, MariaDB-server, cerbot, pluss mange flere.

En enklere løsning er å kompilere openssl 1.1 & nginx 1.25 til TLS 1.3.

Tutorial Recompilare OpenSSL 1.1 & NGINX 1.25 til TLS 1.3 (CentOS 7)

I mitt eksempel er rekomdillasjonen for nginx/1.25.0 & OpenSSL 1.1.1h Bruke bokhandlere OpenSSL 1.1.1t.

RECOMPILARE NGINX.

1. Opprett filen: nginx-with-tls13-compile.sh

sudo nano nginx-with-tls13-compile.sh

der du legger til skriptet:

#!/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

Lagre den nye filen.

2. Lag den nye kjørbare filen:

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

omskrive nginx.service

3. du tar en sikkerhetskopi av nginx.service.

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

(Du kan velge hvilken vei du vil ha for nginx_service.txt)

4. Opprett filen for tjenesten nginx: nginx.service

sudo nano nginx.service

5. I den nye filfilen nginx.service Legg til linjene:

##  /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. Kopier filen i ‘daemon“.

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

7. Etter at filen er kopiert, oppdater filtillatelsene ved å bruke ordren:

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

8. Last inn konfigurasjonen på nytt systemd Å vurdere endringene ved å bruke kommandoen:

sudo systemctl daemon-reload

9. Start på nytt ngnix.

sudo systemctl restart nginx

kompil OpenSSL / NGINX til TLS 1.3

10. I samme mappe der du har filer nginx-with-tls13-compile.sh og nginx.service, Opprett en ny fil: openssl-1.1-compile.sh.

sudo nano openssl-1.1-compile.sh

Legg til skriptet:

#!/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

Erstatte “OPENSSL=openssl-1.1.1h.tar.gz” Med versjonen du vil installere og kompilere med Nginx.

11. Lag det kjørbare skriptet:

chmod +x openssl-1.1-compile.sh

12. Utfør ordren:

./openssl-1.1-compile.sh

Vent til re -kompileringsprosessen er fullført OpenSSL & NGINX.

RECOMPILARE OPENSSL 1.1 & Ningin 1,25 for TLS 1,3 (Centos 7)
OpenSSL & Nginx

Hvis vi kan hjelpe deg eller skal gjøre fullføringer, er kommentarfeltet åpen.

Lidenskapelig om teknologi skriver jeg med glede på stealthsetts.com som starter med 2006. Jeg har en rik opplevelse innen operativsystemer: macOS, Windows og Linux, men også innen programmeringsspråk og bloggplattformer (WordPress) og for nettbutikker (WooCommerce, Magento, Presashop).

Hjem Din kilde til IT -opplæringsprogrammer, nyttige tips og nyheter. RECOMPILARE OPENSSL 1.1 & Ningin 1,25 for TLS 1,3 (Centos 7)
Legg igjen en kommentar