Tái kèm theo OpenSSL 1.1 & Ningin 1.25 cho TLS 1.3 (Centos 7)

tập hợp lại OpenSSL 1.1 & NGINX 1.25TLS 1.3 .CentOS 7), theo kịch bản bạn đã cài đặt trên máy chủ o phiên bản cũ hơn openssl Liên kết với dịch vụ Nginx.

Cụ thể hơn, bạn có thể kích hoạt OpenSSL 1.1.1t cho dịch vụ NGINX, chạy với một phiên bản cũ hơn. 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

Điều này có nghĩa là trên máy chủ có hai phiên bản khác nhau của OpenSSL. Một phiên bản được cài đặt trên hệ thống bởi “yum” .1.0.2k-fips) và một phiên bản OpenSSL được cài đặt bằng cách biên dịch thủ công .openssl 1.1.1t).

Về mặt kinh điển, hầu hết các đề xuất sẽ cài đặt lại ‘OpenSSL‘ ở cấp độ của serever. Điều đó sẽ liên quan đến việc thực hiện đơn hàng: yum remove openssl. Nhưng có một vấn đề lớn ở đây. Với sự gỡ cài đặt của phiên bản cũ OpenSSL, cũng có thể cần phải gỡ cài đặt các ứng dụng phụ thuộc. Giống: nginx, MariaDB-server, cerbot, cộng với nhiều hơn nữa.

Một giải pháp đơn giản hơn là biên dịch lại openssl 1.1 & nginx 1.25TLS 1.3.

Hướng dẫn tái hiện OpenSSL 1.1 & NGINX 1.25TLS 1.3 (CentOS 7)

Trong ví dụ của tôi, việc tái hiện là dành cho nginx/1.25.0 & OpenSSL 1.1.1h Sử dụng hiệu sách OpenSSL 1.1.1t.

Tái hợp nginx.

1. Tạo tệp: nginx-with-tls13-compile.sh

sudo nano nginx-with-tls13-compile.sh

trong đó bạn thêm tập lệnh:

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

Lưu tệp mới.

2. Tạo tệp thực thi mới:

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

Viết lại nginx.service

3. Bạn tạo một bản sao lưu của nginx.service.

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

(Bạn có thể chọn bất kỳ đường dẫn nào bạn muốn nginx_service.txt)

4. Tạo tệp cho dịch vụ nginx: nginx.service

sudo nano nginx.service

5. Trong tệp mới nginx.service Thêm các dòng:

##  /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. Sao chép tệp vào ‘daemon“.

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

7. Sau khi tệp đã được sao chép, hãy cập nhật các quyền của tệp bằng cách sử dụng thứ tự:

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

8. Tải lại cấu hình systemd Để xem xét các thay đổi bằng lệnh:

sudo systemctl daemon-reload

9. Khởi động lại ngnix.

sudo systemctl restart nginx

tập hợp lại OpenSSL / NGINXTLS 1.3

10. Trong cùng một thư mục mà bạn có tệp nginx-with-tls13-compile.shnginx.service, tạo một tệp mới: openssl-1.1-compile.sh.

sudo nano openssl-1.1-compile.sh

Thêm tập lệnh:

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

Thay thế “OPENSSL=openssl-1.1.1h.tar.gz” Với phiên bản bạn muốn cài đặt và biên dịch lại với Nginx.

11. Tạo tập lệnh thực thi:

chmod +x openssl-1.1-compile.sh

12. Thực hiện thứ tự:

./openssl-1.1-compile.sh

Đợi cho đến khi quá trình tái hiện được hoàn thành OpenSSL & NGINX.

Tái kèm theo OpenSSL 1.1 & Ningin 1.25 cho TLS 1.3 (Centos 7)
OpenSSL & Nginx

Nếu chúng tôi có thể giúp bạn hoặc hoàn thành, hộp bình luận sẽ mở.

Đam mê về công nghệ, tôi viết với niềm vui trên sthealthsetts.com bắt đầu từ năm 2006. Tôi có trải nghiệm phong phú trong các hệ điều hành: MacOS, Windows và Linux, nhưng cũng trong các ngôn ngữ lập trình và nền tảng blog (WordPress) và cho các cửa hàng trực tuyến (WooC Commerce, Magento, Presashop).

Trang chủ Nguồn hướng dẫn của nó, các mẹo và tin tức hữu ích. Tái kèm theo OpenSSL 1.1 & Ningin 1.25 cho TLS 1.3 (Centos 7)
Để lại một bình luận