Kiểm tra SSL
Kiểm tra SSL trực tuyến cho bất kỳ website nào: chứng chỉ SSL có hợp lệ không, ngày hết hạn, chuỗi tin cậy trên mọi trình duyệt, tình trạng thu hồi, các phiên bản TLS và bộ mã hóa. Chấm điểm từ A+ đến F trong vài giây, cho cả website lẫn máy chủ email.
SSL checker là gì và kiểm tra những gì?
SSL checker (công cụ kiểm tra SSL) kết nối đến máy chủ theo cách một trình duyệt vẫn làm và đọc chứng chỉ mà máy chủ đưa ra. Công cụ này tự thực hiện kết nối TLS, nên thấy chính xác những gì máy chủ gửi: chứng chỉ và chuỗi của nó, phiên bản giao thức, bộ mã hóa và cơ chế trao đổi khóa. Các website đứng sau Cloudflare từ chối kết nối của chúng tôi, nên với chúng, chứng chỉ được lấy từ nhật ký CT, còn bước quét giao thức và chấm điểm được bỏ qua; máy chủ chỉ có IPv6 thì hiện chưa kết nối được. Sau đó, nó kiểm tra chuỗi với bốn kho chứng chỉ gốc mà trình duyệt và hệ điều hành sử dụng, hỏi CA xem chứng chỉ có bị thu hồi không, và quét xem máy chủ còn chấp nhận những giao thức cũ và bộ mã hóa yếu nào.
Kết quả vừa là một bài kiểm tra SSL vừa là công cụ kiểm tra TLS: một kết luận bằng lời dễ hiểu, điểm từ A+ đến F kèm lý do, và các chi tiết đằng sau. Công cụ cũng kiểm tra những gì xung quanh chứng chỉ: header HSTS, chuyển hướng HTTP sang HTTPS, bản ghi CAA và nhật ký Certificate Transparency.

Kết luậnHợp lệ hay không trong một câu, số ngày còn lại, đơn vị cấp và điểm kèm lý do.Thời hạnChứng chỉ đang ở đâu trong vòng đời của nó: ngày cấp, hôm nay, ngày hết hạn, so với mức tối đa cho ngày cấp của nó.Chuỗi tin cậyMọi chứng chỉ từ website đến gốc, cách chúng tôi có được từng chứng chỉ, và kết luận của bốn kho chứng chỉ gốc.Các mục kiểm traTên máy chủ, chuỗi, độ tin cậy, thu hồi, giao thức, trao đổi khóa, HSTS và CAA, mỗi mục kèm cách khắc phục khi không đạt.Cách kiểm tra chứng chỉ SSL
Ba cách, từ nhanh nhất đến chi tiết nhất:
- 1
Bằng công cụ kiểm tra chứng chỉ SSL này
Nhập tên miền (hoặc một URL, hoặc host:port cho dịch vụ khác) và chọn Kiểm tra SSL. Chứng chỉ và chuỗi của nó hiện ra trước, sau đó tình trạng thu hồi, kết quả quét giao thức và HSTS lần lượt được điền vào, còn kết luận và điểm đến sau cùng.
- 2
Xem chứng chỉ bảo mật trong trình duyệt
Chọn biểu tượng bên trái địa chỉ, rồi trong Chrome chọn Connection is secure (Kết nối an toàn) và Certificate is valid (Chứng chỉ hợp lệ), còn trong Firefox chọn More information (Thêm thông tin). Bạn thấy các tên, đơn vị cấp và ngày tháng, nhưng không thấy chuỗi đúng như máy chủ gửi, các giao thức máy chủ cho phép, hay chứng chỉ có bị thu hồi không: Chrome không kiểm tra trực tuyến phần lớn các trường hợp thu hồi.
- 3
Bằng openssl
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/nullin ra chuỗi mà máy chủ gửi; chuyển kết quả quaopenssl x509 -noout -datesđể xem ngày hết hạn. Các lệnh có ở bên dưới và trong mục Chuỗi của kết quả.
Cách kiểm tra hạn dùng của chứng chỉ SSL
Kiểm tra tên miền ở trên: kết quả cho biết còn bao nhiêu ngày và hiển thị toàn bộ thời hạn của chứng chỉ, từ ngày cấp đến ngày hết hạn. Ngày ở mục Có hiệu lực đến là trường notAfter của chứng chỉ; sau thời điểm đó, mọi trình duyệt đều hiện cảnh báo toàn trang (NET::ERR_CERT_DATE_INVALID trong Chrome).
Từ terminal, echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate in ra cùng ngày đó, và -checkend 2592000 cho một script biết chứng chỉ có hết hạn trong vòng 30 ngày hay không. Mục Lịch sử có thể tải về lời nhắc lịch cho bất kỳ ngày nào trước khi hết hạn, không cần tài khoản.
Let's Encrypt đã ngừng gửi email nhắc hết hạn từ tháng 6 năm 2025, và chứng chỉ ngày càng ngắn hạn hơn, nên việc gia hạn cần được tự động hóa: gia hạn khi đã qua khoảng hai phần ba thời hạn (ngày thứ 60 của chứng chỉ 90 ngày), hoặc để CA cho biết thời điểm qua ACME Renewal Information (RFC 9773).
Thời hạn chứng chỉ · example-shop.com
$ echo | openssl s_client -connect example-shop.com:443 -servername example-shop.com 2>/dev/null | openssl x509 -noout -enddate
notAfter=Nov 30 07:11:59 2026 GMT
$ echo | openssl s_client -connect example-shop.com:443 -servername example-shop.com 2>/dev/null | openssl x509 -noout -checkend 2592000
Certificate will not expireVì sao chứng chỉ SSL ngày càng ngắn hạn?
Vì trình duyệt và các CA đã bỏ phiếu như vậy. Đề xuất SC-081 của CA/Browser Forum (tháng 4 năm 2025) rút ngắn thời hạn tối đa của một chứng chỉ TLS công khai qua ba bước, để khóa bị lộ hoặc thông tin danh tính lỗi thời sớm mất hiệu lực hơn:
Thời gian dùng lại kết quả xác thực cũng rút ngắn theo: CA được dùng lại một lần xác thực tên miền đã hoàn tất trong 200 ngày hiện nay, 100 ngày từ năm 2027 và chỉ 10 ngày từ tháng 3 năm 2029, nên tên miền gần như phải được chứng minh lại mỗi lần.
Let's Encrypt còn đi xa hơn theo lộ trình riêng: chứng chỉ 90 ngày của họ sẽ thành chứng chỉ 64 ngày từ ngày 10 tháng 2 năm 2027 và 45 ngày từ ngày 16 tháng 2 năm 2028, còn chứng chỉ sáu ngày thì đã có ngay hôm nay. Một chứng chỉ mà công cụ này hiển thị có thời hạn dài hơn mức tối đa cho ngày cấp của nó là vi phạm quy định (Chrome từ chối nó).
- Từ năm 2020398 ngày
- 15 tháng 3 năm 2026200 ngày
- 15 tháng 3 năm 2027100 ngày
- 15 tháng 3 năm 202947 ngày
Gia hạn thủ công mỗi năm một lần đã không còn dùng được từ ngày 15 tháng 3 năm 2026. Hãy dùng một ACME client (Certbot, Caddy, AutoSSL của nhà cung cấp hosting) và kiểm tra rằng việc gia hạn thực sự diễn ra.
Kiểm tra chuỗi SSL: chứng chỉ lá, trung gian và gốc
Trình duyệt tin chứng chỉ của một website vì có một chuỗi chữ ký dẫn từ nó đến một chứng chỉ gốc trong kho chứng chỉ gốc của trình duyệt. Máy chủ phải gửi chứng chỉ của chính nó và các chứng chỉ trung gian; chứng chỉ gốc đã có sẵn trên thiết bị. Công cụ kiểm tra chuỗi này hiển thị chuỗi hai lần: đúng như máy chủ gửi, và như trình duyệt dựng lên, kèm chứng chỉ gốc mà từng kho tin cậy.
Lỗi thường gặp nhất là thiếu chứng chỉ trung gian: máy chủ chỉ gửi chứng chỉ của chính nó. Chrome thường có thể tải chứng chỉ còn thiếu từ địa chỉ ghi trong chứng chỉ (AIA), và Firefox tải sẵn các chứng chỉ trung gian mà các CA công bố cho CCADB, nên website trông vẫn ổn trên trình duyệt. Ứng dụng, API client, curl và các công cụ khác thường không làm vậy, và thất bại với các lỗi như unable to get local issuer certificate.
- Chứng chỉ lá (chứng chỉ của website)
- Ghi tên website trong Subject Alternative Names và chứa khóa công khai của máy chủ. Có hiệu lực tối đa 200 ngày nếu được cấp từ ngày 15 tháng 3 năm 2026.
- Chứng chỉ trung gian
- Được chứng chỉ gốc ký và ký chứng chỉ của website, nhờ đó khóa của chứng chỉ gốc có thể được giữ ngoại tuyến. Máy chủ phải gửi nó.
- Chứng chỉ gốc
- Tự ký và được tin cậy vì trình duyệt hoặc hệ điều hành đưa nó vào kho chứng chỉ gốc. Gửi nó đi là được phép nhưng vô ích.
Sửa chuỗi chứng chỉ không đầy đủ
- 1
Cài tệp chuỗi đầy đủ mà CA cung cấp (thường có tên fullchain.pem hoặc ca-bundle), không phải chỉ riêng chứng chỉ. Mục Chuỗi trong kết quả có thể tải về đúng gói cần dùng.
- 2
nginx:
ssl_certificatephải trỏ đến một tệp duy nhất chứa chứng chỉ, tiếp theo là các chứng chỉ trung gian. - 3
Apache 2.4.8 trở lên: đặt các chứng chỉ trung gian vào
SSLCertificateFile, sau chứng chỉ (phiên bản cũ hơn dùngSSLCertificateChainFile). - 4
Kiểm tra lại: chuỗi phải kết thúc ở một chứng chỉ gốc trong cả bốn kho, và không có chứng chỉ nào bị đánh dấu do chúng tôi tải về.
Chuỗi tin cậy
- Chứng chỉ websiteexample-shop.comLet's Encrypt · DV · RSA 2048do máy chủ gửi
- Trung gianR13RSA 2048 · đến thg 3 2027do máy chủ gửi
- GốcISRG Root X1đến thg 6 2035từ kho chứng chỉ gốc
- Kho chứng chỉ gốcĐược tin cậy ở mọi nơi
Các lỗi chứng chỉ SSL thường gặp và cách khắc phục
Cảnh báo của trình duyệt nghĩa là gì, và công cụ kiểm tra hiển thị gì cho lỗi đó:
NET::ERR_CERT_DATE_INVALID
SEC_ERROR_EXPIRED_CERTIFICATE / MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE
Chứng chỉ đã hết hạn (hoặc chưa đến ngày có hiệu lực), hoặc đồng hồ của thiết bị bị sai.
Gia hạn và cài chứng chỉ mới, rồi tự động hóa việc gia hạn. Thước thời hạn của công cụ hiển thị các mốc ngày.
NET::ERR_CERT_AUTHORITY_INVALID
SEC_ERROR_UNKNOWN_ISSUER / MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT
Chuỗi không dẫn đến một chứng chỉ gốc được tin cậy: chứng chỉ tự ký hoặc của CA nội bộ, hoặc thiếu chứng chỉ trung gian.
Cài chứng chỉ từ một CA công khai kèm chuỗi đầy đủ. Chuỗi tin cậy cho thấy chỗ bị đứt.
NET::ERR_CERT_COMMON_NAME_INVALID
SSL_ERROR_BAD_CERT_DOMAIN
Chứng chỉ không ghi tên website bạn đã mở. Wildcard chỉ bao một cấp: *.example.com không bao gồm example.com hay a.b.example.com.
Cấp chứng chỉ liệt kê mọi tên mà website phản hồi, kể cả www.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
SSL_ERROR_NO_CYPHER_OVERLAP / SSL_ERROR_UNSUPPORTED_VERSION
Trình duyệt và máy chủ không có chung phiên bản giao thức hay bộ mã hóa nào, thường do máy chủ chỉ hỗ trợ TLS 1.0 hoặc bộ mã hóa cũ.
Bật TLS 1.2 và TLS 1.3 với bộ mã hóa AEAD. Mục Giao thức liệt kê những gì máy chủ chấp nhận.
Máy chủ nên hỗ trợ những phiên bản TLS nào?
TLS 1.3 và TLS 1.2, không gì cũ hơn. TLS 1.0 và 1.1 đã chính thức bị loại bỏ từ tháng 3 năm 2021 (RFC 8996) và mọi trình duyệt hiện nay đều từ chối chúng; SSL 3.0 đã bị phá vỡ. TLS 1.3, nay là RFC 9846, nhanh hơn (một vòng khứ hồi) và chỉ giữ lại các bộ mã hóa AEAD có bảo mật chuyển tiếp (forward secrecy).
Phần cần chú ý tiếp theo là trao đổi khóa. Chrome, Firefox và các hệ thống của Apple hiện đề xuất X25519MLKEM768, kết hợp X25519 với ML-KEM hậu lượng tử (FIPS 203), được chuẩn hóa cho TLS trong RFC 10024, để lưu lượng bị ghi lại hôm nay không thể bị một máy tính lượng tử trong tương lai giải mã. Đến cuối năm 2025, hơn một nửa lưu lượng do con người tạo ra đi qua Cloudflare đã dùng nó, nhưng còn ít máy chủ gốc chấp nhận. Mục Giao thức cho biết máy chủ của bạn có chấp nhận không.
Cách tính điểm SSL
Cách chấm điểm được mô phỏng theo hướng dẫn xếp hạng của Qualys SSL Labs: một vấn đề mà trình duyệt hiển thị là lỗi sẽ quyết định điểm chữ trước, rồi mỗi thiết lập yếu hơn sẽ giới hạn mức điểm cao nhất có thể đạt.
| Điểm | Điều kiện |
|---|---|
| A+ | Một điểm A không lỗi, có TLS 1.3 và HSTS được duy trì ít nhất sáu tháng. |
| A | Được tin cậy, chỉ TLS 1.2 và 1.3, có bảo mật chuyển tiếp và bộ mã hóa AEAD. Máy chủ email tối đa chỉ đạt mức này (HSTS dành cho website). |
| A- | Không có TLS 1.3, hoặc website không có header HSTS hợp lệ. |
| B | Vẫn chấp nhận TLS 1.0, TLS 1.1 hoặc RC4, khóa dưới 2048 bit, không có bảo mật chuyển tiếp hoặc AEAD, hoặc chuỗi không đầy đủ. |
| C | SSL 3.0 đang bật, 3DES hoặc RC4 vẫn được chọn cho client hiện đại, hoặc không có cả TLS 1.2 lẫn 1.3. |
| F | Hết hạn, bị thu hồi, bộ mã hóa cấp xuất khẩu (export-grade), chỉ có RC4, hoặc SSL 3.0 là giao thức tốt nhất. |
| T / M | Không được tin cậy (T) hoặc cấp cho tên khác (M): trình duyệt hiện cảnh báo bất kể thiết lập ra sao. Điểm chữ mà nó sẽ đạt sau khi sửa cũng được hiển thị. |
HSTS, CAA, OCSP và các thiết lập còn lại
HSTS
Header
Strict-Transport-Securityyêu cầu trình duyệt chỉ dùng HTTPS trong số giây max-age. Với thời hạn từ một năm trở lên, includeSubDomains và preload, website có thể tham gia danh sách HSTS preload được tích hợp sẵn trong trình duyệt. Kết quả đọc cả header lẫn danh sách.HTTP sang HTTPS
http:// nên chuyển hướng đến https:// trên cùng tên trước mọi thứ khác, nếu không lần truy cập đầu tiên sẽ không được mã hóa.
Bản ghi CAA
Bản ghi CAA trong DNS nêu tên các CA được phép cấp chứng chỉ cho tên miền; mọi CA công khai đều phải kiểm tra nó. Kết quả hiển thị bản ghi và cho biết nó có cho phép CA đã cấp chứng chỉ hiện tại hay không, để lần gia hạn không bị thất bại.
Thu hồi
Từ năm 2024, CRL là bắt buộc còn OCSP là tùy chọn, và Let's Encrypt đã đóng dịch vụ OCSP vào tháng 8 năm 2025. Chứng chỉ không có địa chỉ OCSP là bình thường: công cụ sẽ đọc CRL thay thế.
Kiểm tra chứng chỉ SSL bằng OpenSSL
Các lệnh openssl cho cùng các bước kiểm tra, trên macOS, Linux và Windows (đã cài OpenSSL). Thay example.com bằng host của bạn:
| Cần kiểm tra | Lệnh |
|---|---|
| Chuỗi mà máy chủ gửi | openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null |
| Ngày hết hạn | echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates |
| Hết hạn trong 30 ngày tới? | echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -checkend 2592000 |
| Tên, đơn vị cấp và khóa | echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -text |
| Có chấp nhận TLS 1.3? | openssl s_client -connect example.com:443 -servername example.com -tls1_3 </dev/null |
| Máy chủ email (STARTTLS) | openssl s_client -connect mail.example.com:587 -starttls smtp -servername mail.example.com </dev/null |
API kiểm tra SSL
Một endpoint miễn phí hỗ trợ CORS: gửi POST {"domain": "example.com"} đến /api/ssl-certificate để nhận các trường của API cũ của chúng tôi, nay với giá trị độ tin cậy, chữ ký và phiên bản thực, cùng điểm, kết luận của từng kho và tình trạng thu hồi. Mỗi mạng được 30 lượt kiểm tra mỗi phút; một lượt lặp lại trong vòng mười phút được trả từ bộ nhớ đệm.
$ curl -X POST https://dnsrobot.net/api/ssl-certificate \
-H "Content-Type: application/json" -d '{"domain": "github.com"}'
{
"success": true, "domain": "github.com",
"leafCertificate": { "daysToExpire": 39, "isValid": true, … },
"trustStatus": { "isTrusted": true, "hasValidChain": true, … },
"v2": { "state": "valid", "grade": "A+",
"stores": { "mozilla": true, "chrome": true, … }, … }
}Câu hỏi thường gặp về kiểm tra SSL
Làm sao kiểm tra chứng chỉ SSL của website có hợp lệ không?
Làm sao kiểm tra khi nào chứng chỉ SSL hết hạn?
openssl x509 -noout -enddate trên chứng chỉ của máy chủ để in ra ngày đó. Chứng chỉ công khai cấp từ ngày 15 tháng 3 năm 2026 có thời hạn tối đa 200 ngày, nên việc gia hạn cần tự động; mục Lịch sử cũng tải về được lời nhắc lịch.Bài kiểm tra SSL kiểm tra những gì?
Chứng chỉ trung gian là gì, và vì sao chuỗi của tôi không đầy đủ?
Vì sao website chạy được trên Chrome nhưng lỗi trên ứng dụng hoặc trình duyệt khác?
Năm 2026, chứng chỉ SSL có hiệu lực bao lâu?
Các điểm SSL A+, A, B, T và M nghĩa là gì?
Có kiểm tra được chứng chỉ SSL của máy chủ email hoặc cổng khác không?
Làm sao biết chứng chỉ SSL đã bị thu hồi chưa?
Website của tôi có an toàn trước máy tính lượng tử không?
SSL và TLS khác nhau thế nào?
Công cụ kiểm tra SSL này có miễn phí không, và các bạn có lưu những gì tôi kiểm tra không?
Còn thiếu điều gì?Đề xuất tính năng hoặc công cụ mới
Công cụ bảo mật và DNS khác
Giải Mã CSR & Chứng Chỉ
Giải mã CSR hoặc chứng chỉ SSL: subject, SAN, kích thước khóa, thời hạn, nhà phát hành, fingerprint, kiểm tra chữ ký và độ khớp CSR với chứng chỉ
Tạo CSR
Tạo yêu cầu ký chứng chỉ và khóa riêng tư ngay trong trình duyệt: RSA hoặc ECDSA, kèm SAN và lệnh OpenSSL tương ứng
Kiểm tra HTTP Header
Phân tích header phản hồi HTTP và chấm điểm header bảo mật
Tra Cứu DNS
Mọi bản ghi DNS từ máy chủ của chính tên miền, cạnh bộ nhớ đệm của Google và Cloudflare
Kiểm Tra SMTP
Kiểm tra mọi máy chủ mail: STARTTLS, chứng chỉ, AUTH và open relay
Kiểm Tra Cổng
Kiểm tra kết nối cổng và khả dụng dịch vụ