Cách gia hạn SSL không downtime
Cập nhật lần cuối: 11/06/2026
SSL certificate cần được gia hạn định kỳ để duy trì kết nối HTTPS an toàn. Nếu thực hiện không đúng cách, quá trình gia hạn có thể gây lỗi chứng chỉ, gián đoạn dịch vụ hoặc xuất hiện cảnh báo bảo mật. Bài viết này giải thích cách gia hạn SSL an toàn trên môi trường production mà không gây downtime cho website.
Gia hạn SSL là gì?
Gia hạn SSL (SSL Renewal) là quá trình cấp mới hoặc kéo dài thời gian hiệu lực của chứng chỉ SSL trước khi chứng chỉ hiện tại hết hạn.
Đối với hầu hết các Certificate Authority hiện nay, việc gia hạn thực chất là:
- Cấp một certificate mới
- Có thời hạn hiệu lực mới
- Có Serial Number mới
- Có thể sử dụng lại hoặc tạo mới Private Key
Không phải đơn giản chỉ là "kéo dài ngày hết hạn" của certificate cũ.
Vì sao cần gia hạn SSL trước khi hết hạn?
Khi SSL hết hạn:
- Trình duyệt hiển thị cảnh báo bảo mật
- API HTTPS có thể bị từ chối kết nối
- Email server gặp lỗi xác thực TLS
- Người dùng mất niềm tin vào website
SSL nên được gia hạn trước ngày hết hạn ít nhất từ 7 đến 30 ngày để tránh rủi ro vận hành.
Xem thêm: SSL hết hạn thì chuyện gì xảy ra?
Downtime trong quá trình gia hạn SSL xảy ra như thế nào?
Bản thân việc thay certificate không làm website ngừng hoạt động.
Downtime thường xuất hiện do lỗi cấu hình.
Các nguyên nhân phổ biến:
- Quên cài Intermediate Certificate
- Sai Private Key
- Sai Certificate Chain
- Restart sai dịch vụ
- Thay nhầm certificate cho virtual host khác
- Cấu hình rollback không đầy đủ
Quy trình gia hạn SSL không downtime
1. Kiểm tra thời hạn SSL hiện tại
Trước khi gia hạn cần xác nhận thời gian còn lại.
Kiểm tra bằng OpenSSL:
openssl x509 -in certificate.crt -noout -dates
Hoặc kiểm tra trực tiếp từ website:
openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
Ví dụ:
notBefore=Jan 1 00:00:00 2026 GMT
notAfter=Apr 1 23:59:59 2026 GMT
2. Backup toàn bộ SSL hiện tại
Trước khi thay đổi bất kỳ thứ gì cần backup:
- Certificate
- Intermediate Certificate
- Private Key
- Web Server Configuration
Ví dụ:
mkdir ssl-backup
cp *.crt ssl-backup/
cp *.key ssl-backup/
Nếu xảy ra lỗi có thể rollback ngay lập tức.
3. Kiểm tra Private Key
Nếu dự định sử dụng lại Private Key hiện tại, cần xác nhận Private Key vẫn còn đầy đủ và hợp lệ.
Ví dụ:
openssl rsa -in private.key -check
Nếu xuất hiện:
RSA key ok
thì Private Key có thể tiếp tục sử dụng.
Xem thêm: Private Key là gì?
4. Tạo CSR mới (nếu cần)
Một số CA yêu cầu tạo CSR mới.
Ví dụ:
openssl req -new -key private.key -out domain.csr
Flow cơ bản:
Private Key
│
▼
Generate CSR
│
▼
Certificate Authority
│
▼
New Certificate
Xem thêm: CSR là gì?
5. Nhận và kiểm tra certificate mới
Sau khi CA cấp chứng chỉ mới cần kiểm tra:
- Domain Name
- SAN Domains
- Expiration Date
- Issuer
Ví dụ:
openssl x509 -in new_certificate.crt -text -noout
6. Kiểm tra Certificate Chain
Đây là bước bị bỏ qua nhiều nhất.
Flow xác thực:
Website Certificate
│
▼
Intermediate CA
│
▼
Root CA
Kiểm tra chain:
openssl verify -CAfile ca_bundle.crt certificate.crt
Kết quả mong muốn:
certificate.crt: OK
Xem thêm: Certificate Chain là gì?
Thay SSL trên Apache không downtime
Ví dụ cấu hình:
SSLCertificateFile /etc/ssl/domain.crt
SSLCertificateKeyFile /etc/ssl/domain.key
SSLCertificateChainFile /etc/ssl/ca_bundle.crt
Kiểm tra cấu hình:
apachectl configtest
Kết quả:
Syntax OK
Reload Apache:
systemctl reload httpd
Hoặc:
systemctl reload apache2
Reload sẽ nạp lại certificate mới mà không ngắt các kết nối hiện tại.
Thay SSL trên Nginx không downtime
Ví dụ:
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/private.key;
Kiểm tra cấu hình:
nginx -t
Kết quả:
syntax is ok
test is successful
Reload:
systemctl reload nginx
Hoặc:
nginx -s reload
Nginx sẽ sử dụng certificate mới mà không dừng dịch vụ.
Reload và Restart khác nhau như thế nào?
| Thao tác | Ảnh hưởng |
|---|---|
| Reload | Nạp cấu hình mới, giữ kết nối hiện tại |
| Restart | Dừng rồi khởi động lại dịch vụ |
| Stop | Ngừng hoàn toàn dịch vụ |
| Kill | Buộc tiến trình kết thúc |
Đối với môi trường production nên ưu tiên:
Reload thay vì Restart
Kiểm tra sau khi gia hạn
1. Kiểm tra ngày hết hạn
openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
2. Kiểm tra Certificate Chain
openssl s_client -connect example.com:443 -showcerts
3. Kiểm tra TLS Handshake
openssl s_client -connect example.com:443
Đảm bảo:
- Không lỗi certificate
- Không lỗi chain
- Không lỗi hostname
Xem thêm: TLS Handshake là gì?
Gia hạn SSL trên Load Balancer
Trong môi trường:
Internet
│
▼
Load Balancer
│
┌──┴──┐
▼ ▼
Web1 Web2
Nên thay certificate trên:
- Load Balancer
- Reverse Proxy
- WAF
trước khi thay trên các Web Server phía sau.
Điều này giúp giảm nguy cơ gián đoạn dịch vụ.
Các lỗi thường gặp khi gia hạn SSL
1. Private Key không khớp Certificate
Kiểm tra:
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in private.key | openssl md5
Hai giá trị phải giống nhau.
2. Thiếu Intermediate Certificate
Triệu chứng:
- Một số trình duyệt truy cập được
- Một số thiết bị báo lỗi SSL
Nguyên nhân thường do chain chưa đầy đủ.
3. Cài sai certificate
Ví dụ:
- domainA.com dùng certificate của domainB.com
Khi đó trình duyệt có thể báo:
NET::ERR_CERT_COMMON_NAME_INVALID
4. Quên reload dịch vụ
Certificate mới đã được copy lên server nhưng web server vẫn đang sử dụng certificate cũ trong bộ nhớ.
Kết luận
Gia hạn SSL không phải là thao tác phức tạp nhưng có thể gây sự cố nếu thực hiện thiếu quy trình kiểm tra. Để tránh downtime, cần backup đầy đủ, xác thực certificate mới, kiểm tra Certificate Chain và sử dụng cơ chế reload thay vì restart dịch vụ. Trên môi trường production, việc chuẩn hóa quy trình gia hạn SSL giúp giảm thiểu rủi ro và đảm bảo dịch vụ HTTPS luôn hoạt động liên tục.
Xem thêm: Revoke SSL là gì?
Bạn vẫn chưa biết nên chọn…?
Đừng lo lắng, đội ngũ chuyên gia của chúng tôi luôn sẵn sàng lắng nghe nhu cầu và tư vấn giải pháp bảo mật phù hợp nhất cho website và doanh nghiệp của bạn. Hãy liên hệ ngay để được hỗ trợ nhanh chóng, chính xác và hiệu quả.