perkompiliuoti OpenSSL 1.1 ir NGINX 1.25 skirtos TLS 1.3 (CentOS 7)

perkompiliuoti OpenSSL 1.1 & NGINX 1.25TLS 1.3 (CentOS 7), vadovaudamiesi scenarijumi, kai jau įdiegėte serveryje o senesnė versija openssl susijusi su nginx paslauga.

Tiksliau, kad būtų galima suaktyvinti OpenSSL 1.1.1t už paslaugą NGINX, kuri veikia su senesne versija. 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

Tai reiškia, kad yra dvi skirtingos versijos OpenSSL. Versija, kurią sistemoje įdiegė „yum"(1.0.2k-fips) ir versija OpenSSL įdiegta rankiniu būdu (openssl 1.1.1t).

Paprastai dauguma rekomenduoja iš naujo įdiegtiOpenSSL“ serverio lygiu. Tai reikštų komandos vykdymą: yum remove openssl. Tačiau čia yra didelė problema. Pašalinus seną versiją OpenSSL, taip pat gali tekti pašalinti kai kurias priklausomas programas. Toks kaip: nginx, MariaDB-server, cerbotPlius daug daugiau.

Paprastesnis sprendimas yra perkompiliuoti openssl 1.1 & nginx 1.25TLS 1.3.

Perkompiliuoti pamoką OpenSSL 1.1 & NGINX 1.25TLS 1.3 (CentOS 7)

Mano pavyzdyje perkompiliacija skirta nginx/1.25.0 & OpenSSL 1.1.1h naudojantis knygynais OpenSSL 1.1.1t.

Perkompiliuokite NGINX.

1. Sukurkite failą: nginx-with-tls13-compile.sh

sudo nano nginx-with-tls13-compile.sh

kur pridedate scenarijų:

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

Išsaugokite naują failą.

2. Sukurkite naują vykdomąjį failą:

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

perrašyti nginx.service

3. Padarykite atsarginę kopiją nginx.service.

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

(galite pasirinkti bet kurį norimą kelią nginx_service.txt)

4. Sukurkite paslaugos failą nginx: nginx.service

sudo nano nginx.service

5. Faile įkelkite naują failą nginx.service pridėkite eilutes:

##  /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. Nukopijuokite failą į „daemon".

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

7. Nukopijavę failą, atnaujinkite failo teises naudodami komandą:

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

8. Iš naujo įkelkite konfigūraciją systemd Norėdami atsižvelgti į pakeitimus naudodami komandą:

sudo systemctl daemon-reload

9. Paleiskite iš naujo ngnix.

sudo systemctl restart nginx

perkompiliuoti OpenSSL / NGINXTLS 1.3

10. Tame pačiame aplanke, kuriame yra failai nginx-with-tls13-compile.sh Şi nginx.service, sukurkite naują failą: openssl-1.1-compile.sh.

sudo nano openssl-1.1-compile.sh

Pridėkite scenarijų:

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

Pakeisti "OPENSSL=openssl-1.1.1h.tar.gz“ su norima įdiegti versija ir iš naujo kompiliuoti su NGINX.

11. Padarykite scenarijų vykdomąjį:

chmod +x openssl-1.1-compile.sh

12. Vykdykite komandą:

./openssl-1.1-compile.sh

Palaukite, kol bus baigtas pakartotinio kompiliavimo procesas OpenSSL & NGINX.

perkompiliuoti OpenSSL 1.1 ir NGINX 1.25 skirtos TLS 1.3 (CentOS 7)
OpenSSL & NGINX

Jei galime jums padėti arba yra ką papildyti, komentarų skiltis atidaryta.

Esu aistringas technologijoms, rašau su malonumu StealthSettings.com nuo 2006 m. Rasite mano parašytų straipsnių apie operacines sistemas Windows, Linux, macOS, bet ir apie tokias žiniatinklio platformas kaip WordPress Şi WooCommerce

kaip » Linux » perkompiliuoti OpenSSL 1.1 ir NGINX 1.25 skirtos TLS 1.3 (CentOS 7)

Palikite komentarą