Khi chứng chỉ của server đăng nhập, API hoặc server patch hết hạn hoặc thiếu chứng chỉ trung gian, kết nối TLS của các client kết nối mới sẽ thất bại kể từ thời điểm đó.
Vì sao Chứng chỉ đã quá hạn hiệu lực, server gửi thiếu chứng chỉ trung gian, hoặc ngày giờ trên thiết bị của người chơi bị sai → Dẫn đến Client xác minh chứng chỉ thất bại và cắt kết nối TLS → Trên màn hình Không vào được, kẹt loading ở bước đăng nhập hoặc patch, chỉ các tính năng HTTPS như cửa hàng bị lỗi. Người đã vào game từ trước thường vẫn bình thường
Ngay sau đăng nhập hoặc bảo trì, Khi làm một thao tác nhất định
Phụ trách
Phụ trách chính Hạ tầng mạng (Đội hạ tầng) · Phối hợp Hạ tầng server (Đội hạ tầng), Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Ghi lỗi chứng chỉ bằng mã lỗi riêng, tách khỏi các lỗi kết nối khác, kèm hướng dẫn; nếu do sai ngày thì hướng dẫn người chơi bật tự động đặt ngày giờ trên thiết bị; nếu dùng certificate pinning thì nhúng kèm khóa dự phòng và thống nhất lịch thay chứng chỉ với đội hạ tầng.
Việc cần làm (Đội hạ tầng)
Mạng: nếu kết thúc TLS ở bộ cân bằng tải hoặc CDN thì cảnh báo trạng thái tự động gia hạn và số ngày còn lại của chứng chỉ được quản lý (ACM là DaysToExpiry), giữ nguyên bản ghi DNS dùng để xác minh. Thiết bị server·OS: nếu kết thúc TLS trên server thì tự động hóa việc gia hạn và đọc lại cấu hình sau khi gia hạn, cấu hình chuỗi chứng chỉ có cả chứng chỉ trung gian, định kỳ kiểm tra từ bên ngoài thời hạn còn lại của từng địa chỉ đăng nhập, API, patch rồi cảnh báo.
Con số tham khảo
Chứng chỉ Let’s Encrypt có hạn 90 ngày nên được khuyến nghị gia hạn mỗi 60 ngày, còn AWS Certificate Manager kiểm tra chứng chỉ đã xác minh bằng DNS từ 45 ngày trước khi hết hạn rồi tự động gia hạn. Nếu việc tự động gia hạn thất bại âm thầm, đúng thời điểm hết hạn mọi kết nối mới sẽ bị chặn cùng một lúc.
Trên đồ thị
Rớt kết nối hàng loạt · Số lần đăng nhập thành công, số lỗi TLS handshake
Chỗ cần xem
Dùng openssl s_client -connect HOST:443 -showcerts để xem danh sách chứng chỉ server thực sự gửi, rồi kiểm tra ngày hết hạn (notAfter) của từng chứng chỉ bằng openssl x509 -noout -enddate. Nếu kết thúc TLS ở bộ cân bằng tải: số lỗi thương lượng TLS (AWS ALB, NLB là ClientTLSNegotiationErrorCount) và số lần đăng nhập thành công
Đúng nếu
ngày hết hạn đã qua hoặc danh sách server gửi thiếu chứng chỉ trung gian, và thời điểm lỗi bắt đầu tăng trùng với lúc hết hạn hoặc lúc thay chứng chỉ
Loại trừ nếu
danh sách chứng chỉ và ngày hết hạn bình thường nhưng chỉ một số người chơi thất bại → xem ngày giờ trên thiết bị của những người đó hoặc danh sách chứng chỉ gốc của OS cũ
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)
Tìm hiểu thêm
Cấu hình thiếu chứng chỉ trung gian có thể trông vẫn bình thường khi mở bằng trình duyệt trên PC. Trình duyệt nhớ các chứng chỉ trung gian đã nhận từ trang khác để bù vào chỗ thiếu, nhưng những client không có bộ nhớ như vậy, chẳng hạn ứng dụng Android, sẽ thất bại. Thời hạn hiệu lực cũng đang ngắn lại. Let’s Encrypt dự kiến rút thời hạn mặc định xuống 64 ngày vào năm 2027 và 45 ngày vào năm 2028, nên cấu hình cố định gia hạn mỗi 60 ngày chỉ còn dư 4 ngày với chứng chỉ 64 ngày, và sẽ để chứng chỉ 45 ngày hết hạn trước khi kịp gia hạn. AWS Certificate Manager cũng không tự động gia hạn chứng chỉ được nhập vào (import), và nếu xóa bản ghi DNS dùng để xác minh thì việc gia hạn sẽ thất bại. Biểu hiện không đăng nhập được trông giống “DNS lỗi hoặc chậm”, nhưng lỗi chứng chỉ xảy ra ở bước TLS handshake sau khi đã tìm được địa chỉ server, và thời điểm bắt đầu trùng với lúc chứng chỉ hết hạn hoặc lúc thay chứng chỉ.
FAQLet's Encrypt Thời hạn chứng chỉ mặc định 90 ngày, khuyến nghị gia hạn mỗi 60 ngày
Decreasing Certificate Lifetimes to 45 DaysLet's Encrypt Rút thời hạn mặc định xuống 64 ngày vào tháng 2 năm 2027 và 45 ngày vào tháng 2 năm 2028; gia hạn theo khoảng cố định 60 ngày không còn đủ nên khuyến nghị gia hạn ở khoảng 2/3 thời hạn
Renewal for domains validated by DNSAWS Từ 45 ngày trước khi hết hạn, kiểm tra chứng chỉ có đang được dùng trong service AWS không và bản ghi CNAME dùng để xác minh còn không, rồi tự động gia hạn; nếu không xác minh được thì gửi thông báo ở các mốc 30 ngày, 15 ngày, 7 ngày, 3 ngày và 1 ngày trước khi hết hạn
Supported CloudWatch metricsAWS DaysToExpiry: số ngày còn lại đến khi chứng chỉ hết hạn, được công bố hai lần mỗi ngày cho đến khi hết hạn
Security with network protocolsAndroid (Google) Nếu server gửi thiếu chứng chỉ trung gian, ứng dụng Android thất bại với SSLHandshakeException, nhưng trình duyệt trên PC có thể bù bằng chứng chỉ trung gian đã nhận từ trước nên không báo lỗi; dùng openssl s_client để kiểm tra chuỗi server gửi
Network security configurationAndroid (Google) Nếu dùng certificate pinning thì phải nhúng kèm khóa dự phòng để phòng khi thay khóa hoặc đổi CA; nếu không, kết nối sẽ bị cắt cho đến khi cập nhật ứng dụng
openssl-s_clientOpenSSL -showcerts: hiển thị danh sách chứng chỉ đúng theo thứ tự server gửi (đây chưa phải chuỗi đã được xác minh)
openssl-x509OpenSSL -enddate: in ra ngày hết hạn của chứng chỉ (notAfter), -checkend: kiểm tra chứng chỉ có hết hạn trong số giây chỉ định không