Bộ đối chiếu Chứng chỉ & Khóa riêng — chứng minh bằng chữ ký, không phải đoán
Bộ đối chiếu Chứng chỉ & Khóa riêng
Dán chứng chỉ mà máy chủ đang dùng và khóa riêng bạn sắp triển khai cùng với nó, trang này sẽ trả lời câu hỏi mà một trang đã triển khai hay bị lỗi: hai thứ có đến từ cùng một cặp khóa không? Kết quả không phải là phỏng đoán từ độ dài modulus hay dấu vân tay riêng lẻ — trang ký một thử thách cố định bằng khóa riêng và xác minh chữ ký bằng khóa công khai trong chứng chỉ. Nếu xác minh đạt, hai thứ thuộc về nhau; nếu thất bại, dù chỉnh sửa cấu hình bao nhiêu cũng không làm chúng hoạt động. Cả hai cách đọc được hiển thị cạnh nhau với thuật toán, kích thước khóa, định danh khóa chủ thể và dấu vân tay khóa công khai, và không có gì bạn dán rời khỏi trình duyệt.
1. Chứng chỉ hoặc chuỗi
Dán bao nhiêu khối cũng được. Mỗi chứng chỉ được kiểm tra với mọi khóa, nên một chuỗi cộng một khóa sẽ cho bạn biết chính xác chứng chỉ nào trong chuỗi thuộc về khóa đó — một điều bất ngờ thường gặp trên máy chủ đang phục vụ nhầm chứng chỉ từ một bó tệp. Đọc được PEM, phần thân base64 hoặc thập lục phân thuần, và tệp PKCS#7 .p7b; bộ kiểm tra chứng chỉ sẽ kiểm tra chính chứng chỉ khi khóa đã xác định.
2. Khóa riêng, hoặc khóa công khai
Hiểu được PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 (BEGIN RSA PRIVATE KEY), SEC1 (BEGIN EC PRIVATE KEY) và khóa công khai SPKI thuần (BEGIN PUBLIC KEY), cũng như tệp khóa dán dưới dạng base64 hoặc thập lục phân. Khóa PKCS#8 đã mã hóa (BEGIN ENCRYPTED PRIVATE KEY) không thể đọc bằng trình duyệt và sẽ được báo như vậy, kèm lệnh để gỡ mật khẩu.
chưa kiểm tra gì
Mẫu là một chứng chỉ tự ký và khóa riêng thuộc về nó, cả hai đều được tạo cho trang này và không bảo vệ gì cả. Thay khóa bằng một khóa khác để xem kết quả khác, hoặc thả khối khóa công khai thay cho khóa riêng để xem khóa công khai có khớp không.
Trước khi dán khóa riêng vào bất kỳ trang web nào, hãy cân nhắc kỹ. Trang này là một tệp JavaScript thuần, không tải thứ gì từ đâu và không gửi yêu cầu nào, nên khóa được đọc, dùng và bỏ qua ngay trong tab này. Đó vẫn là một lời hứa từ mã bạn có thể đọc, chứ không phải đảm bảo từ một mạng bạn có thể thấy: nếu bạn đang xử lý khóa production, hãy làm việc ngoại tuyến, và cân nhắc rằng cách kiểm tra an toàn nhất là cùng lệnh openssl trên máy chủ của bạn. Khóa dán vào đây không bao giờ được lưu, không bao giờ được đặt vào tệp, và không bao giờ được gửi đi đâu — kể cả qua các nút xuất, vốn chỉ ghi kết luận về khóa chứ không ghi chính khóa.
Vì sao ký số là câu trả lời. Hai tệp có thể trông giống nhau mà vẫn không khớp: hầu hết hướng dẫn so sánh khóa RSA theo modulus, nhưng cách đó chỉ dùng được cho RSA, và một khóa có thể mang đúng modulus nhưng với số mũ hỏng hoặc padding sai. Trang này chứng minh cặp khóa theo cách một lần bắt tay TLS làm — ký một thử thách cố định bằng khóa riêng, rồi xác minh bằng khóa công khai trong chứng chỉ — nên kết luận đúng cho RSA, ECDSA và Ed25519 như nhau. Khi chỉ dán nửa công khai, các byte khóa công khai được so với các byte trong chứng chỉ, cũng đủ kết luận về danh tính, chỉ không chứng minh được ai đang giữ nửa riêng.
Kết quả khớp không cho bạn biết điều gì. Rằng khóa là khóa mà máy chủ thực sự đang tải, rằng chứng chỉ được tin cậy, rằng tệp khóa còn nguyên vẹn trên đĩa, hoặc rằng khóa không bị ai khác sao chép. Nó cũng không thể cho biết chứng chỉ có phải là chứng chỉ mà client sẽ nhận hay không, vì bộ cân bằng tải hoặc CDN đặt trước trang web có thể phục vụ một chứng chỉ khác. Để kiểm tra máy chủ đang thực sự trình bày gì, chạy openssl s_client -connect example.com:443 -servername example.com -showcerts và dán kết quả đó vào ô chứng chỉ.
Các tệp đến từ đâu. Chứng chỉ là bất cứ thứ gì máy chủ của bạn được cấu hình dùng, hoặc chứng chỉ được xuất từ trình duyệt hay lấy ra từ một bó .p7b. Khóa riêng là tệp mà máy chủ web đọc khi khởi động, thường có tên như privkey.pem hoặc server.key. Nếu khóa được mã hóa, hãy giải mã một bản sao trước bằng openssl pkcs8 -topk8 -nocrypt -in key.pem -out key-plain.pem rồi dán tệp đó, sau đó xóa bản sao.
Báo cáo khớp
Chưa kiểm tra gì. Dán một chứng chỉ và một khóa ở trên rồi nhấn Kiểm tra xem chúng có khớp không. Kết luận sẽ hiển thị ở đây cùng bằng chứng đằng sau, và báo cáo có thể được sao chép hoặc lưu.
Cùng kiểm tra bằng openssl, trên máy của bạn
# khóa công khai trong chứng chỉ openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl sha256 # khóa công khai trong khóa riêng openssl pkey -in key.pem -pubout | openssl pkey -pubin -outform DER | openssl sha256 # hai giá trị băm chỉ bằng nhau khi cặp này thuộc về nhau # cách cũ chỉ dùng cho RSA: so sánh modulus openssl x509 -in cert.pem -noout -modulus | openssl md5 openssl rsa -in key.pem -noout -modulus | openssl md5
So sánh băm hoạt động với mọi loại khóa và khớp với dấu vân tay khóa công khai mà trang này báo cáo, còn so sánh modulus chỉ có cho RSA. Cả hai đều không chứng minh được ai đang giữ nửa riêng — kiểm tra ký số ở trên thì có, đó là lý do trang này dùng nó.
Báo cáo chứa gì. Kết luận, cặp kết quả đọc được mà nó xuất phát từ (thuật toán, kích thước khóa, đường cong, định danh khóa chủ thể và dấu vân tay khóa công khai cho chứng chỉ và cho khóa), và phép kiểm tra chính xác đã chạy. Báo cáo không bao giờ chứa chính khóa riêng: khóa được dùng để tạo chữ ký và không được ghi vào văn bản, JSON hay bộ nhớ tạm. Những gì bạn sao chép hoặc lưu đều an toàn để đính kèm vào phiếu hỗ trợ; khóa bạn đã dán thì không, và bạn nên coi bộ nhớ tạm là nơi duy nhất khác mà nó từng tồn tại.
Quyền riêng tư: chứng chỉ và khóa được đọc ngay trong tab, không có gì được tải lên, và trang này không gửi bất kỳ yêu cầu nào — không có thăm dò và không tra cứu. Để tạo một cặp khớp, dùng trình tạo chứng chỉ tự ký; để xin chứng chỉ cho một khóa bạn đã có, dùng trình tạo CSR; để đọc nội dung chứng chỉ, dùng bộ giải mã chứng chỉ.
🔒 Công cụ SSL & TLS
Các tiện ích chứng chỉ và khóa chạy hoàn toàn trong trình duyệt của bạn.