Cách dùng SSL check tool | Kiểm tra hạn chứng chỉ trước khi khách báo đỏ
Hết hạn SSL = cả site hiện cảnh báo đỏ — khách bỏ chạy, thanh toán/API có thể gãy. Cách nhanh: mở SSL check, nhập domain, bấm Kiểm tra trên SSL Labs, đọc hạn chứng chỉ và chain. Với Let’s Encrypt (90 ngày), đừng chờ khách nhắn — kiểm tra trước 30 ngày hoặc bật auto-renew.
Freelance quản lý site SME, sinh viên deploy VPS lần đầu, và junior DevOps thường chỉ nhớ SSL khi Chrome hiện “Kết nối của bạn không phải là kết nối riêng tư.” Bài này là cách dùng SSL check tool thực chiến: nhập domain → đọc báo cáo → biết phải renew hay sửa chain.
Ai nên bookmark
- Freelance WordPress / hosting nhận thêm domain khách mỗi tháng
- Team nhỏ không có dashboard cert riêng
- Người vừa cài Nginx + Let’s Encrypt trên VPS Việt Nam / DigitalOcean
Bạn sẽ có: quy trình tool, cách đọc SSL Labs, bảng triệu chứng → nguyên nhân, checklist vận hành, case study quên renew.
SSL check trên Kawa làm gì?
Công cụ SSL check không tự “đo” chứng chỉ trong máy bạn. Luồng thực tế:
- Bạn nhập tên miền (ví dụ
shop.khachhang.vn) - Tool bỏ
https://và path nếu bạn dán nhầm URL đầy đủ - Nút Kiểm tra trên SSL Labs mở
https://www.ssllabs.com/ssltest/analyze.html?d=shop.khachhang.vn - Qualys SSL Labs quét server public và hiện báo cáo chi tiết
Phù hợp: domain đã trỏ DNS ra internet, cần xem hạn + cấu hình TLS.
Không phù hợp: hostname chỉ tồn tại trong LAN/VPN, hoặc bạn không muốn domain xuất hiện trên lịch sử scan công khai.
Không cần tạo tài khoản Kawa — mở trang, nhập, bấm.
Quy trình dùng từng bước
Bước 1 — Nhập đúng domain
| Nên nhập | Tránh |
|---|---|
example.com | https://example.com/admin (tool sẽ cố cắt, nhưng nên sạch) |
api.example.com | IP thuần nếu bạn chưa biết SNI/host |
| subdomain thật sự phục vụ HTTPS | Domain chưa trỏ DNS (scan sẽ fail hoặc timeout) |
Bước 2 — Mở SSL Labs
Trên /vi/tools/ssl-check/:
- Điền tên miền vào ô Tên miền
- Bấm Kiểm tra trên SSL Labs
- Đợi progress bar (lần đầu có thể 1–2 phút)
Bước 3 — Đọc 4 mục quan trọng trước
- Certificate → Valid until (hoặc
notAfter) — còn bao nhiêu ngày? - Subject / Common names / SAN — có khớp hostname bạn mở không?
- Chain issues — thiếu intermediate?
- Overall Rating (A/B/C/F) — cấu hình TLS tổng thể
Site grade B vẫn “vào được”. Site hết hạn thì hầu hết trình duyệt chặn. Khi khách báo đỏ, nhìn Valid until trước, tối ưu cipher sau.
Hết hạn SSL gây ra gì?
| Hệ quả | Ai chịu thiệt |
|---|---|
| Cảnh báo đỏ trên trình duyệt | Khách truy cập web / admin |
| App mobile / webhook từ chối TLS | Thanh toán, Zalo OA, API đối tác |
| SEO và uy tín tụt | Chủ shop, agency quản lý site |
| Support ngập ticket “web sập” | Freelance đang ngủ yên |
Let’s Encrypt mặc định ~90 ngày. VPS cài tay mà quên cron certbot renew là kịch bản kinh điển ở team nhỏ.
Ba cách kiểm tra — khi nào dùng cái nào
| Cách | Ưu | Nhược / lưu ý |
|---|---|---|
| SSL check → SSL Labs | Đủ hạn + grade + chain, không cần SSH | Domain phải public; scan mất vài phút |
| Khóa trình duyệt → Chứng chỉ | Nhanh trên máy bạn | Khó xem chain sâu; mỗi máy một lần click |
| openssl s_client | Script được, chỉ định port | Cần terminal; dễ quên -servername (SNI) |
Lệnh tham khảo khi bạn đang SSH:
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -dates -subject
Nhìn dòng notAfter=. Dùng SSL check khi bạn không muốn mở terminal hoặc cần giải thích cho khách bằng screenshot grade.
Đọc báo cáo: triệu chứng → việc cần làm
| Bạn thấy trên SSL Labs | Nguyên nhân hay gặp | Việc làm |
|---|---|---|
| Valid until còn < 30 ngày | Sắp hết hạn | Kiểm tra auto-renew; renew tay nếu cần |
| Certificate not valid / expired | Đã quá hạn | Renew ngay, reload Nginx/Caddy |
| Chain incomplete | Thiếu intermediate CA | Cài fullchain.pem thay vì chỉ cert.pem |
| Domain mismatch | Cert cho www nhưng mở apex (hoặc ngược) | Mở đúng host hoặc cấp lại SAN |
| Grade thấp (C/F) | TLS cũ, cipher yếu | Nâng config sau khi site đã xanh |
Case study: freelance quên renew
Khách nhắn 8h sáng: “Web bị virus à? Hiện chữ đỏ.” Domain dùng Let’s Encrypt trên VPS Ubuntu, cài 3 tháng trước, không có timer renew. Mở SSL check → SSL Labs → notAfter đã qua 2 ngày.
Sửa:
sudo certbot renew --force-renewal
sudo systemctl reload nginx
Rồi scan lại bằng cùng tool để gửi khách ảnh “Valid until” mới. Thời gian xử lý ~15 phút — phần lớn là tìm đúng server. Nếu có lịch kiểm tra 30 ngày trước, ticket này không tồn tại.
Checklist vận hành cho site khách
In ra hoặc lưu Notion:
- Mỗi domain production có entry trong sheet: domain | issuer | ngày hết hạn | ai renew
- Let’s Encrypt: xác nhận
certbot.timerhoặc croncertbot renewchạy - Sau khi trỏ DNS mới / đổi CDN: chạy SSL check lại (cert có thể vẫn của host cũ)
- Wildcard / nhiều SAN: kiểm tra đúng hostname khách đang mở
- Còn 30 ngày: thử renew staging hoặc xác nhận email hết hạn từ CA
- Sau renew: hard refresh, kiểm tra mobile 4G (tránh cache office Wi-Fi)
Monitoring gợi ý (khi đã có nhiều hơn 3 site)
- Uptime robot / Better Stack kèm check TLS
- Calendar nhắc 60 và 30 ngày trước hạn
- SSL check thủ công khi vừa migrate Cloudflare / CDN
Câu hỏi hay gặp khi dùng tool
Nhập www hay không www?
Nhập đúng host mà trình duyệt đang mở. Cert có thể chỉ cover một bên nếu chưa cấu hình SAN đủ.
SSL Labs báo “Assessment failed”?
Firewall chặn IP scan, site down, hoặc DNS chưa trỏ. Kiểm tra ping/DNS trước, rồi thử lại.
Có thay được openssl hoàn toàn không?
Cho việc “xem hạn + giải thích cho khách” thì SSL check + SSL Labs đủ. Cho CI/automation thì vẫn nên openssl hoặc checker trong pipeline.
Self-signed trên staging?
Trình duyệt và SSL Labs sẽ cảnh báo — đúng kỳ vọng. Đừng dùng self-signed cho domain khách production.
Tóm tắt quy trình 60 giây
- Mở /vi/tools/ssl-check/
- Gõ domain → Kiểm tra trên SSL Labs
- Đọc Valid until → nếu < 30 ngày thì xử lý renew
- Xem Chain và Rating nếu vẫn còn cảnh báo sau khi hạn còn dài
- Gửi khách screenshot + ngày hết hạn mới sau khi sửa
Liên kết liên quan
- Công cụ SSL check — nhập domain, mở SSL Labs
- DNS check — khi nghi ngờ chưa trỏ đúng trước khi scan SSL
- Danh sách công cụ