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.


Xem thêm: TLS 1.3 là gì?


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


Xem thêm: OpenSSL là gì?


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.


Xem thêm: Cách kiểm tra phiên bản TLS trên website


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.


Xem thêm: Cipher Suite là gì?


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.


Xem thêm: Cách gia hạn SSL không downtime


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.


Xem thêm: SSL Labs là gì?


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.


Xem thêm: TLS Termination là gì?


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.


Xem thêm: Tại sao nên tắt TLS 1.0 và TLS 1.1?


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.

Bài viết mới nhất

Timestamp Server là gì? Cách hoạt động và vai trò trong Code Signing Code Signing Certificate và SSL Certificate khác nhau như thế nào? Điều gì xảy ra khi Code Signing Certificate bị thu hồi? Điều gì xảy ra khi Code Signing Certificate hết hạn? Code Signing hoạt động như thế nào? Quy trình ký và xác minh chữ ký số

Có thể bạn quan tâm

Gọi điện
Zalo
Google Maps