Bộ giải mã CSR
Trước khi Tổ chức cấp chứng chỉ ký vào chứng chỉ TLS, bạn cần gửi cho họ một Yêu cầu cấp chứng chỉ (Certificate Signing Request: CSR), một tập dữ liệu dạng base64 chứa thông tin chủ thể bạn muốn ghi trên chứng chỉ và khóa công khai của bạn, cùng một chữ ký chứng minh bạn đang nắm giữ khóa riêng tương ứng. Bộ giải mã này nhận CSR được mã hóa bằng PEM và hiển thị các trường chủ thể cùng thông số khóa công khai, để bạn có thể kiểm tra tên chung, tổ chức và kích thước khóa trước khi gửi yêu cầu cho CA.
Cách giải mã CSR
-
1
Dán CSR
Bao gồm các điểm đánh dấu `-----BEGIN CERTIFICATE REQUEST-----` và `-----END CERTIFICATE REQUEST-----`. Khoảng trắng được chấp nhận.
-
2
Chạy bộ giải mã
Yêu cầu được phân tích và các trường chủ thể cùng khóa công khai được đọc ra.
-
3
Xem lại kết quả
Kiểm tra các trường chủ thể như tên chung và tổ chức, cùng thuật toán và kích thước khóa.
-
4
Hành động theo kết quả
Nếu chủ thể hoặc khóa có vẻ sai, hãy tạo lại CSR trước khi gửi cho CA.
Bộ giải mã hiển thị gì
CSR là một cấu trúc ASN.1 (PKCS #10). Bộ giải mã đọc hai thứ từ nó:
- Chủ thể: các trường Tên phân biệt (Distinguished Name) đã được yêu cầu, thường là quốc gia (C), tổ chức (O), đơn vị tổ chức (OU), địa phương (L), tiểu bang (ST) và tên chung (CN).
- Khóa công khai: thuật toán (RSA, EC, DSA) và kích thước khóa tính bằng bit.
Chữ ký bên trong CSR là thứ chứng minh với CA rằng người gửi đang nắm giữ khóa riêng tương ứng. Bộ giải mã này không hiển thị chữ ký; CA sẽ xác minh nó khi xử lý yêu cầu.
Ví dụ về kết quả
Với một yêu cầu chứng chỉ tên miền thông thường, kết quả có dạng như sau:
Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA
Tên chính xác của các thuộc tính trong chủ thể phụ thuộc vào cách yêu cầu được tạo ra.
Các trường để kiểm tra lại
- Tên thông dụng (CN): phải là tên máy chủ chính. Các trình duyệt hiện đại không xem xét CN mà chỉ kiểm tra các tên miền SAN; tuy nhiên, nhiều tổ chức cấp chứng chỉ (CA) vẫn yêu cầu phải có CN hợp lệ.
- Các tên thay thế cho chủ thể (SAN): liệt kê tất cả các tên máy chủ và ký tự đại diện mà chứng chỉ sẽ bảo vệ. Trình duyệt đối chiếu theo SAN, chứ không phải CN.
- Quốc gia (C): Mã ISO gồm hai chữ cái (ví dụ: US, GB, DE); không phải tên đầy đủ. Các cơ quan chứng nhận (CA) sẽ từ chối các mã không đúng.
- Kích thước khóa: RSA 2048 là kích thước tối thiểu; các giá trị 3072 hoặc 4096 được sử dụng để tăng độ bảo mật. ECDSA P-256 là một giải pháp thay thế hiện đại tốt và tạo ra chứng chỉ có kích thước nhỏ hơn.
- Thuật toán chữ ký: SHA-256 hoặc cao hơn; SHA-1 đã bị loại bỏ từ lâu và sẽ không được chấp nhận.
Về các Tên thay thế cho chủ thể (SAN)
Bộ giải mã hiển thị chủ thể của yêu cầu nhưng không hiển thị phần mở rộng SAN. Trình duyệt đối chiếu chứng chỉ theo SAN chứ không theo CN; nếu chứng chỉ cần bao phủ thêm tên máy chủ, hãy đưa chúng vào khi tạo yêu cầu, ví dụ:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
Khi bộ giải mã không phân tích được CSR
Các nguyên nhân phổ biến nhất là khối PEM bị cắt ngắn hoặc bị hỏng:
- Văn bản bị cắt: hãy dán lại toàn bộ khối, bao gồm cả hai điểm đánh dấu.
- Bị chèn xuống dòng: dán khối đúng như lúc nó được tạo ra.
- Sai nội dung: khóa công khai, chứng chỉ hoặc khóa riêng dán nhầm sẽ không được phân tích như một CSR.
Tạo khóa tương ứng
Một CSR luôn được tạo ra cùng với một khóa riêng tư. Lệnh tiêu biểu:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
Hoặc đối với ECDSA:
openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr
Hãy bảo vệ khóa riêng; nếu khóa này bị rò rỉ, chứng chỉ phải được hủy bỏ.
Câu hỏi thường gặp
Một CSR chỉ chứa thông tin công khai (khóa công khai, chủ thể và các SAN) cùng với một chữ ký, nên có thể chia sẻ an toàn với một CA hoặc dán vào bộ giải mã. Thứ phải giữ bí mật là khóa riêng tương ứng.
Không. Bộ giải mã này nhận dạng văn bản PEM với các điểm đánh dấu BEGIN/END CERTIFICATE REQUEST. Để dùng một yêu cầu DER nhị phân, trước tiên hãy chuyển nó sang PEM, ví dụ với openssl req -in request.der -inform DER -out request.pem.
Không. Hầu hết các cơ quan cấp chứng chỉ công cộng (như Let’s Encrypt, DigiCert, Sectigo) chỉ yêu cầu thông tin CN và SAN; họ không tính đến các trường O, OU, L, ST, C trong các chứng chỉ đã được xác thực theo miền. Các chứng chỉ được xác thực theo tổ chức hoặc có xác thực mở rộng sẽ kiểm tra riêng từng trường này.
Thường là do văn bản dán vào bị cắt ngắn hoặc bị chèn dấu xuống dòng, hoặc do dán nhầm khóa hay chứng chỉ thay vì CSR. Hãy dán lại toàn bộ khối vào giữa hai điểm đánh dấu.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bộ chuyển đổi Base64 sang Hex
Chuyển chuỗi Base64 chuẩn thành các byte nền tảng được viết dưới dạng hexadecimal liên tục in hoa. Giải mã nghiêm ngặt, lý tưởng cho token, khóa và chữ ký JWT.
Trình tạo bảng màu ngẫu nhiên
Tạo bảng màu ngẫu nhiên từ 2 đến 15 mẫu màu, chọn phong cách rực rỡ, pastel, dịu hoặc tối, rồi sao chép mã HEX hoặc biến CSS.
Trình xem hex của tệp nhị phân
Chọn một tệp và kiểm tra phần dữ liệu giới hạn từ bất kỳ offset byte hợp lệ nào dưới dạng hex dump cục bộ với cột offset, hex và ASCII.
Bộ chọn màu HEX
Chọn hoặc nhập màu HEX để xem RGB, HSL, CMYK ước tính, độ chói tương đối và tương phản với trắng và đen.