tập hợp lại OpenSSL 1.1 & NGINX 1.25 vì TLS 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.
nội dung
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.25 vì TLS 1.3.
Hướng dẫn tái hiện OpenSSL 1.1 & NGINX 1.25 vì TLS 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 / NGINX vì TLS 1.3
10. Trong cùng một thư mục mà bạn có tệp nginx-with-tls13-compile.sh Và nginx.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.

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ở.