Pārkompilēt OpenSSL 1.1 un NGINX 1.25 TLS 1.3 (CentOS 7)

Pārkompilēt OpenSSL 1.1 & NGINX 1.25 par TLS 1.3 (CentOS 7), ievērojot scenāriju, kurā jau esat instalējis serverī o vecāka versija openssl saistīts ar nginx pakalpojumu.

Precīzāk, lai varētu aktivizēties OpenSSL 1.1.1t par pakalpojumu NGINX, kas darbojas ar vecāku versiju. 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

Tas nozīmē, ka ir divas dažādas versijas OpenSSL. Versija, kuru sistēmā instalēja “yum"(1.0.2k-fips) un versija OpenSSL instalēta ar manuālu kompilāciju (openssl 1.1.1t).

Parasti lielākā daļa iesaka pārinstalētOpenSSL' servera līmenī. Tas nozīmētu komandas izpildi: yum remove openssl. Bet šeit ir liela problēma. Ar vecās versijas atinstalēšanu OpenSSL, iespējams, būs arī jāatinstalē dažas atkarīgas lietotnes. Piemēram: nginx, MariaDB-server, cerbotPlus vēl daudz vairāk.

Vienkāršāks risinājums ir pārkompilēt openssl 1.1 & nginx 1.25 par TLS 1.3.

Pārkompilēt pamācību OpenSSL 1.1 & NGINX 1.25 par TLS 1.3 (CentOS 7)

Manā piemērā pārkompilācija ir paredzēta nginx/1.25.0 & OpenSSL 1.1.1h izmantojot grāmatnīcas OpenSSL 1.1.1t.

Pārkompilēt NGINX.

1. Izveidojiet failu: nginx-with-tls13-compile.sh

sudo nano nginx-with-tls13-compile.sh

kur pievienojat skriptu:

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

Saglabājiet jauno failu.

2. Izveidojiet jauno izpildāmo failu:

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

pārrakstīt nginx.service

3. Izveidojiet dublējumu nginx.service.

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

(jūs varat izvēlēties jebkuru vēlamo ceļu nginx_service.txt)

4. Izveidojiet pakalpojuma failu nginx: nginx.service

sudo nano nginx.service

5. Failā jaunais fails nginx.service pievienojiet rindas:

##  /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. Kopēt failu uz "daemon".

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

7. Kad fails ir nokopēts, atjauniniet faila atļaujas, izmantojot komandu:

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

8. Pārlādējiet konfigurāciju systemd lai ņemtu vērā izmaiņas, izmantojot komandu:

sudo systemctl daemon-reload

9. Restartēt ngnix.

sudo systemctl restart nginx

Pārkompilēt OpenSSL / NGINX par TLS 1.3

10. Tajā pašā mapē, kurā atrodas faili nginx-with-tls13-compile.sh si nginx.service, izveidojiet jaunu failu: openssl-1.1-compile.sh.

sudo nano openssl-1.1-compile.sh

Pievienojiet skriptu:

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

Aizvietot "OPENSSL=openssl-1.1.1h.tar.gz” ar versiju, kuru vēlaties instalēt un atkārtoti kompilēt ar NGINX.

11. Padariet skriptu izpildāmu:

chmod +x openssl-1.1-compile.sh

12. Palaidiet komandu:

./openssl-1.1-compile.sh

Pagaidiet, līdz tiks pabeigts atkārtotas kompilācijas process OpenSSL & NGINX.

Pārkompilēt OpenSSL 1.1 un NGINX 1.25 TLS 1.3 (CentOS 7)
OpenSSL & NGINX

Ja mēs varam jums palīdzēt vai ir jāveic papildinājumi, komentāru sadaļa ir atvērta.

Aizraujoties ar tehnoloģijām, es rakstu ar prieku StealthSettings.com kopš 2006. Jūs atradīsiet manis rakstītus rakstus par operētājsistēmām Windows, Linux, macOS, bet arī par tādām tīmekļa platformām kā WordPress si WooCommerce

kā uz » Linux » Pārkompilēt OpenSSL 1.1 un NGINX 1.25 TLS 1.3 (CentOS 7)

Leave a Comment