Omkompilera OpenSSL 1.1 & NGINX 1.25 för TLS 1.3 (CentOS 7)

Omkompilera OpenSSL 1.1 & NGINX 1.25 för TLS 1.3 (CentOS 7), efter scenariot där du redan har installerat på servern o äldre version openssl associerad med nginx-tjänsten.

Mer specifikt för att kunna aktivera OpenSSL 1.1.1t för tjänsten NGINX, som körs med en äldre version. 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

Det betyder att det finns två olika versioner av OpenSSL. En version installerad på systemet av "yum"(1.0.2k-fips) och en version OpenSSL installeras genom manuell kompilering (openssl 1.1.1t).

Klassiskt sett rekommenderar de flesta att du installerar om 'OpenSSL' på servernivå. Detta skulle involvera att utföra kommandot: yum remove openssl. Men det finns ett stort problem här. Med avinstallationen av den gamla versionen OpenSSL, kan du också behöva avinstallera vissa beroende appar. Till exempel: nginx, MariaDB-server, cerbotPlus många fler.

En enklare lösning är att kompilera om openssl 1.1 & nginx 1.25 för TLS 1.3.

Kompilera om handledning OpenSSL 1.1 & NGINX 1.25 för TLS 1.3 (CentOS 7)

I mitt exempel är omkompileringen för nginx/1.25.0 & OpenSSL 1.1.1h använder bokhandlar OpenSSL 1.1.1t.

Omkompilera NGINX.

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

sudo nano nginx-with-tls13-compile.sh

där du lägger till 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

Spara den nya filen.

2. Gör den nya körbara filen:

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

Skriva om nginx.service

3. Gör en säkerhetskopia av nginx.service.

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

(du kan välja vilken väg du vill nginx_service.txt)

4. Skapa filen för tjänsten nginx: nginx.service

sudo nano nginx.service

5. I filen den nya filen nginx.service lägg till raderna:

##  /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. Kopiera filen till 'daemon".

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

7. När filen har kopierats uppdaterar du filbehörigheterna med kommandot:

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

8. Ladda om konfigurationen systemd för att ta hänsyn till ändringarna med kommandot:

sudo systemctl daemon-reload

9. Starta om ngnix.

sudo systemctl restart nginx

Omkompilera OpenSSL / NGINX för TLS 1.3

10. I samma mapp där du har filerna nginx-with-tls13-compile.sh şi nginx.service, skapa en ny fil: openssl-1.1-compile.sh.

sudo nano openssl-1.1-compile.sh

Lägg till 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

Byta ut "OPENSSL=openssl-1.1.1h.tar.gz” med den version du vill installera och kompilera om med NGINX.

11. Gör skriptet körbart:

chmod +x openssl-1.1-compile.sh

12. Kör kommandot:

./openssl-1.1-compile.sh

Vänta tills omkompileringsprocessen är klar OpenSSL & NGINX.

Omkompilera OpenSSL 1.1 & NGINX 1.25 för TLS 1.3 (CentOS 7)
OpenSSL & NGINX

Om vi ​​kan hjälpa dig eller om det finns tillägg att göra är kommentarsfältet öppet.

Brinner för teknik, skriver jag med glädje på StealthSettings.com sedan 2006. Du hittar artiklar om operativsystem skrivna av mig Windows, Linux, macOS, men också om webbplattformar som t.ex WordPress şi WooCommerce

Hur man » Linux » Omkompilera OpenSSL 1.1 & NGINX 1.25 för TLS 1.3 (CentOS 7)

Lämna en kommentar