☎ Hỗ trợ 24/7: (+84.28).6268.0611 Email
Cấu hình TLS 1.3 cho Nginx và Apache

Cấu hình TLS 1.3 cho Nginx và Apache

Cập nhật lần cuối: 08/08/2026

TLS 1.3 là phiên bản mới nhất của giao thức Transport Layer Security (TLS), mang lại khả năng bảo mật cao hơn và tốc độ kết nối nhanh hơn so với TLS 1.2. Bài viết hướng dẫn cách kiểm tra điều kiện, cấu hình TLS 1.3 trên Nginx và Apache, đồng thời chia sẻ các lưu ý quan trọng để triển khai an toàn trên môi trường production.

Cấu hình TLS 1.3 cho Nginx và Apache

TLS 1.3 là phiên bản mới nhất của giao thức TLS hiện nay, được thiết kế để cải thiện cả hiệu suất lẫn bảo mật so với TLS 1.2 và các phiên bản trước đó.

Việc kích hoạt TLS 1.3 giúp website giảm thời gian thiết lập kết nối, loại bỏ nhiều thuật toán mã hóa cũ và nâng cao khả năng chống lại các cuộc tấn công hiện đại.

TLS 1.3 hiện được hỗ trợ bởi hầu hết các trình duyệt, hệ điều hành và máy chủ web hiện đại.

Điều kiện để sử dụng TLS 1.3

Trước khi cấu hình TLS 1.3, cần đảm bảo hệ thống đáp ứng các yêu cầu tối thiểu.

Thành phần Yêu cầu
OpenSSL 1.1.1 trở lên
Nginx 1.13 trở lên (khuyến nghị phiên bản mới)
Apache 2.4.37 trở lên
Trình duyệt Hỗ trợ TLS 1.3

Nếu OpenSSL quá cũ, dù Nginx hoặc Apache đã hỗ trợ TLS 1.3 thì tính năng này vẫn không hoạt động.

Kiểm tra phiên bản OpenSSL

Trước khi thực hiện cấu hình, hãy kiểm tra phiên bản OpenSSL đang sử dụng.

Trên Linux:

openssl version

Ví dụ kết quả:

OpenSSL 3.0.13

Hoặc:

OpenSSL 1.1.1w

Đây là các phiên bản hỗ trợ TLS 1.3.

Kiểm tra Nginx đang sử dụng OpenSSL nào

Trong một số trường hợp máy chủ có nhiều phiên bản OpenSSL khác nhau.

Kiểm tra bằng lệnh:

nginx -V

Ví dụ:

built with OpenSSL 3.0.13

Dòng này cho biết phiên bản OpenSSL mà Nginx thực sự đang sử dụng.

Cấu hình TLS 1.3 trên Nginx

Mở file Virtual Host hoặc file cấu hình SSL của Nginx.

Ví dụ:

/etc/nginx/conf.d/example.conf

Hoặc:

/etc/nginx/sites-enabled/example.conf

Thêm hoặc chỉnh sửa cấu hình:

ssl_protocols TLSv1.2 TLSv1.3;

Cấu hình này:

  • Cho phép TLS 1.2.
  • Cho phép TLS 1.3.
  • Vô hiệu hóa TLS 1.0 và TLS 1.1.

Ví dụ đầy đủ:

server {

    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/private.key;

    ssl_protocols TLSv1.2 TLSv1.3;

}

Cấu hình Cipher Suite cho TLS 1.2

Đối với TLS 1.2, nên sử dụng các Cipher Suite mạnh.

Ví dụ:

ssl_ciphers HIGH:!aNULL:!MD5;

Hoặc:

ssl_ciphers
ECDHE-ECDSA-AES256-GCM-SHA384:
ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:
ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES128-GCM-SHA256:
ECDHE-RSA-AES128-GCM-SHA256;

TLS 1.3 sử dụng bộ Cipher Suite riêng nên cấu hình này chủ yếu áp dụng cho TLS 1.2.

Kiểm tra cấu hình Nginx

Sau khi chỉnh sửa:

nginx -t

Kết quả mong muốn:

syntax is ok
test is successful

Sau đó áp dụng cấu hình:

systemctl reload nginx

Việc reload sẽ không làm gián đoạn kết nối đang hoạt động.

Cấu hình TLS 1.3 trên Apache

Đối với Apache, mở file Virtual Host SSL.

Ví dụ:

/etc/httpd/conf.d/ssl.conf

Hoặc:

/etc/apache2/sites-enabled/example.conf

Thêm cấu hình:

SSLProtocol TLSv1.2 TLSv1.3

Ví dụ đầy đủ:

ServerName example.com

SSLEngine on

SSLCertificateFile /etc/ssl/certs/certificate.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
SSLCertificateChainFile /etc/ssl/certs/ca-bundle.crt

SSLProtocol TLSv1.2 TLSv1.3

Cấu hình này chỉ cho phép TLS 1.2 và TLS 1.3.

Cấu hình Cipher Suite trên Apache

Ví dụ:

SSLCipherSuite HIGH:!aNULL:!MD5

Hoặc:

SSLCipherSuite
ECDHE-ECDSA-AES256-GCM-SHA384:
ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:
ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES128-GCM-SHA256:
ECDHE-RSA-AES128-GCM-SHA256

Điều này giúp loại bỏ các bộ mã hóa yếu hoặc lỗi thời.

Kiểm tra cấu hình Apache

Trên CentOS, AlmaLinux hoặc Rocky Linux:

apachectl configtest

Hoặc:

httpd -t

Nếu không có lỗi:

Syntax OK

Sau đó reload Apache:

systemctl reload httpd

Hoặc:

systemctl reload apache2

Tùy thuộc vào hệ điều hành.

Cách kiểm tra TLS 1.3 sau khi cấu hình

Sử dụng OpenSSL:

openssl s_client -tls1_3 -connect example.com:443

Nếu thành công:

Protocol : TLSv1.3

Điều này cho thấy TLS 1.3 đã được kích hoạt.

Ngoài ra có thể sử dụng SSL Labs để kiểm tra từ bên ngoài Internet.

Các lỗi thường gặp khi bật TLS 1.3

1. OpenSSL quá cũ

Đây là nguyên nhân phổ biến nhất.

Ví dụ:

OpenSSL 1.0.2

Phiên bản này không hỗ trợ TLS 1.3.

2. Nginx hoặc Apache quá cũ

Một số phiên bản cũ chưa tích hợp đầy đủ TLS 1.3.

3. Load Balancer đang xử lý SSL

Trong nhiều hệ thống:

User
   │
   ▼
Load Balancer
   │
   ▼
Web Server

Phiên bản TLS thực tế phụ thuộc vào Load Balancer chứ không phải Nginx hoặc Apache.

4. CDN đang Terminate SSL

Nếu website sử dụng CDN, kết nối TLS phía người dùng có thể được xử lý hoàn toàn tại CDN.

Do đó việc bật TLS 1.3 trên máy chủ gốc chưa chắc đã ảnh hưởng đến kết nối từ phía khách truy cập.

Có nên chỉ bật TLS 1.3 không?

Trong đa số trường hợp:

Không nên.

Mặc dù TLS 1.3 là phiên bản hiện đại nhất nhưng một số thiết bị hoặc phần mềm cũ vẫn chỉ hỗ trợ TLS 1.2.

Thông thường cấu hình phù hợp là:

TLSv1.2
TLSv1.3

Điều này giúp cân bằng giữa bảo mật và khả năng tương thích.

Kết luận

Cấu hình TLS 1.3 trên Nginx và Apache là một trong những bước quan trọng để nâng cao bảo mật cho website hiện đại. Trước khi triển khai cần đảm bảo OpenSSL và máy chủ web hỗ trợ TLS 1.3, sau đó cấu hình chỉ cho phép TLS 1.2 và TLS 1.3 nhằm loại bỏ các giao thức lỗi thời. Sau khi hoàn tất, nên sử dụng OpenSSL hoặc SSL Labs để xác minh cấu hình hoạt động đúng và đảm bảo website đạt được mức bảo mật tối ưu cho môi trường production.

(+84.28).6268.0611

Hotline liên hệ

Chat Zalo

Trò chuyện ngay

Live chat

Hỗ trợ trực tuyến