Recompilare OpenSSL 1.1 & Ningin 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 via “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. Såsom: 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.

Kompilera om 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 och 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

Ersätta “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.

Recompilare OpenSSL 1.1 & Ningin 1.25 för TLS 1.3 (CentOS 7)
OpenSSL & Ninx

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

Passionerad om teknik, skriver jag med nöje på stealthsetts.com med början med 2006. Jag har en rik upplevelse av operativsystem: macOS, Windows och Linux, men också på programmeringsspråk och bloggplattformar (WordPress) och för onlinebutiker (WooCommerce, Magento, Presashop).

Hem Din källa till IT -tutorials, användbara tips och nyheter. Recompilare OpenSSL 1.1 & Ningin 1.25 för TLS 1.3 (CentOS 7)
Lämna en kommentar