Cấu hình SSL cho Nginx với Chứng Chỉ Đáng Tin Cậy

Cài đặt và cấu hình Nginx để hỗ trợ HTTPS sử dụng chứng chỉ SSL đáng tin cậy.

1. Cài đặt Nginx với Mô-đun SSL

Truy cập tài liệu chính thức của Nginx để biết thêm thông tin về cách cấu hình: Hướng dẫn cài đặt Nginx

sudo yum -y install openssl openssl-devel # Mô-đun http_ssl cần openssl
./configure \
    --sbin-path=/usr/local/nginx/nginxbinary \
    --conf-path=/usr/local/nginx/nginxconfig.conf \
    --pid-path=/usr/local/nginx/nginx.pid \
    --with-http_ssl_module \
    --with-pcre=../pcre-8.40 \
    --with-zlib=../zlib-1.2.11
make
sudo make install

2. Cấu hình Nginx cho HTTPS

Tham khảo hướng dẫn chi tiết tại đây: Hướng dẫn cấu hình HTTPS trên Nginx

server {
    listen              443 ssl;
    server_name         yourdomain.com;
    ssl_certificate     yourdomain.crt;
    ssl_certificate_key yourdomain.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5:!RC4;
    ...
}

3. Tạo Chứng Chỉ SSL Bản Địa

Dưới đây là script tạo chứng chỉ tự ký:

#!/bin/bash
# Script tạo chứng chỉ tự ký
read -p "Nhập tên miền [yourdomain.com]: " DOMAIN
echo "Tạo khóa máy chủ..."
openssl genrsa -des3 -out $DOMAIN.key 2048
echo "Tạo yêu cầu chứng chỉ máy chủ..."
SUBJECT="/C=VN/ST=Hanoi/L=CauGiay/O=MyCompany/OU=IT/CN=$DOMAIN"
openssl req -new -subj "$SUBJECT" -key $DOMAIN.key -out $DOMAIN.csr
echo "Loại bỏ mật khẩu..."
mv $DOMAIN.key $DOMAIN.original.key
openssl rsa -in $DOMAIN.original.key -out $DOMAIN.key
echo "Ký chứng chỉ SSL..."
openssl x509 -req -days 3650 -in $DOMAIN.csr -signkey $DOMAIN.key -out $DOMAIN.crt
echo "Lưu ý:"
echo "Sao chép $DOMAIN.crt đến /etc/nginx/ssl/$DOMAIN.crt"
echo "Sao chép $DOMAIN.key đến /etc/nginx/ssl/$DOMAIN.key"
echo "Thêm cấu hình trong nginx:"
echo "server {"
echo "    ..."
echo "    listen 443 ssl;"
echo "    ssl_certificate     /etc/nginx/ssl/$DOMAIN.crt;"
echo "    ssl_certificate_key /etc/nginx/ssl/$DOMAIN.key;"
echo "}"

Các tệp được tạo ra gồm có:
  • yourdomain.crt: Chứng chỉ tự ký
  • yourdomain.csr: Yêu cầu chứng chỉ
  • yourdomain.key: Khóa không có mật khẩu
  • yourdomain.original.key: Khóa có mật khẩu
Chỉ `yourdomain.crt` và `yourdomain.key` cần được tải lên máy chủ web. Ví dụ cấu hình Nginx:

server {
    listen 443 ssl;
    server_name yourdomain.com;
    ssl_certificate /etc/nginx/ssl/yourdomain.crt;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
}

4. Làm Sao Để Chứng Chỉ Vĩnh Viễn?

Mua chứng chỉ thương mại hoặc sử dụng các dịch vụ miễn phí như StartSSL, Let's Encrypt. Đối với toàn bộ trang web sử dụng HTTPS, chuyển tất cả yêu cầu từ cổng 80 sang 443.

Thẻ: nginx ssl certificate HTTPS openssl

Đăng vào ngày 3 tháng 7 lúc 13:09