ανασύνταξη OpenSSL 1.1 & NGINX 1.25 για TLS 1.3 (CentOS 7)

ανασύνταξη OpenSSL 1.1 & NGINX 1.25 για TLS 1.3 (CentOS 7), ακολουθώντας το σενάριο όπου έχετε ήδη εγκαταστήσει στον διακομιστή o παλαιότερη έκδοση openssl που σχετίζεται με την υπηρεσία nginx.

Πιο συγκεκριμένα, για να μπορείτε να ενεργοποιήσετε OpenSSL 1.1.1t για την εξυπηρετηση NGINX, το οποίο εκτελείται με μια παλαιότερη έκδοση. 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

Αυτό σημαίνει ότι υπάρχουν δύο διαφορετικές εκδοχές του OpenSSL. Μια έκδοση που είναι εγκατεστημένη στο σύστημα από το "yum»(1.0.2k-fips) και μια έκδοση OpenSSL εγκατεστημένο με μη αυτόματη συλλογή (openssl 1.1.1t).

Κλασικά, οι περισσότεροι συνιστούν επανεγκατάστασηOpenSSL' σε επίπεδο διακομιστή. Αυτό θα συνεπαγόταν την εκτέλεση της εντολής: yum remove openssl. Αλλά εδώ υπάρχει ένα μεγάλο πρόβλημα. Με την απεγκατάσταση της παλιάς έκδοσης OpenSSL, μπορεί επίσης να χρειαστεί να απεγκαταστήσετε ορισμένες εξαρτημένες εφαρμογές. Οπως: nginx, MariaDB-server, cerbotΠλέον πολλοί άλλοι.

Μια απλούστερη λύση είναι η εκ νέου μεταγλώττιση openssl 1.1 & nginx 1.25 για TLS 1.3.

Εκ νέου μεταγλώττιση φροντιστηρίου OpenSSL 1.1 & NGINX 1.25 για TLS 1.3 (CentOS 7)

Στο παράδειγμά μου, η ανασύνταξη είναι για nginx/1.25.0 & OpenSSL 1.1.1h χρησιμοποιώντας βιβλιοπωλεία OpenSSL 1.1.1t.

Κάντε εκ νέου μεταγλώττιση του NGINX.

1. Δημιουργήστε το αρχείο: nginx-with-tls13-compile.sh

sudo nano nginx-with-tls13-compile.sh

όπου προσθέτετε το σενάριο:

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

Αποθηκεύστε το νέο αρχείο.

2. Δημιουργήστε το νέο εκτελέσιμο αρχείο:

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

ξαναγράφω nginx.service

3. Δημιουργήστε ένα αντίγραφο ασφαλείας του nginx.service.

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

(μπορείτε να επιλέξετε όποιο μονοπάτι θέλετε nginx_service.txt)

4. Δημιουργήστε το αρχείο για την υπηρεσία nginx: nginx.service

sudo nano nginx.service

5. Στο αρχείο το νέο αρχείο nginx.service προσθέστε τις γραμμές:

##  /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. Αντιγράψτε το αρχείο στο 'daemon".

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

7. Αφού αντιγραφεί το αρχείο, ενημερώστε τα δικαιώματα του αρχείου χρησιμοποιώντας την εντολή:

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

8. Φορτώστε ξανά τη διαμόρφωση systemd για να λάβετε υπόψη τις αλλαγές χρησιμοποιώντας την εντολή:

sudo systemctl daemon-reload

9. Επανεκκίνηση ngnix.

sudo systemctl restart nginx

ανασύνταξη OpenSSL / NGINX για TLS 1.3

10. Στον ίδιο φάκελο που έχετε τα αρχεία nginx-with-tls13-compile.sh και nginx.service, δημιουργήστε ένα νέο αρχείο: openssl-1.1-compile.sh.

sudo nano openssl-1.1-compile.sh

Προσθέστε το σενάριο:

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

Αντικαταστήστε "OPENSSL=openssl-1.1.1h.tar.gz” με την έκδοση που θέλετε να εγκαταστήσετε και να μεταγλωττίσετε ξανά με το NGINX.

11. Κάντε το σενάριο εκτελέσιμο:

chmod +x openssl-1.1-compile.sh

12. Εκτελέστε την εντολή:

./openssl-1.1-compile.sh

Περιμένετε να ολοκληρωθεί η διαδικασία εκ νέου μεταγλώττισης OpenSSL & NGINX.

ανασύνταξη OpenSSL 1.1 & NGINX 1.25 για TLS 1.3 (CentOS 7)
OpenSSL & NGINX

Εάν μπορούμε να σας βοηθήσουμε ή υπάρχουν προσθήκες που πρέπει να γίνουν, η ενότητα σχολίων είναι ανοιχτή.

Παθιασμένος με την τεχνολογία, γράφω με ευχαρίστηση StealthSettings.com από το 2006. Έχω μεγάλη εμπειρία σε λειτουργικά συστήματα: macOS, Windows και Linux, αλλά και σε γλώσσες προγραμματισμού και πλατφόρμες blogging (WordPress) και για ηλεκτρονικά καταστήματα (WooCommerce, Magento, PrestaShop).

πώς να » Linux » ανασύνταξη OpenSSL 1.1 & NGINX 1.25 για TLS 1.3 (CentOS 7)
Αφήστε ένα σχόλιο