Băm CSR và băm cert không liên quan
Loại băm theo yêu cầu và trên chứng chỉ thực tế không liên quan với nhau.
CA kiểm tra chữ ký trên CSR. Bằng cách đó, CA có thể xác minh rằng CSR không bị thay đổi trong quá trình vận chuyển. Đó là tất cả chữ ký trên CSR.
Không có cách chính thức (hoặc thậm chí là bán chính thức) trong việc nói với CA về hàm băm bạn muốn. Thay vào đó, một công ty CA có thể chạy nhiều CA, một trong số đó chỉ sử dụng SHA256. Và nếu bạn muốn SHA256, thì bạn gửi CSR của mình trên trang web của một SHA256-chỉ-CA cụ thể đó. (Và không phải trên trang web SHA1-CA của họ.)
Điều thường được lý thuyết hóa là một cái gì đó như thế này: "Nếu tôi gửi CSR được ký với SHA1, thì chứng chỉ của tôi sẽ được ký với SHA1." Điều này thường không được thực hiện. ( CA duy nhất tôi biết về điều đó đã từng làm điều này một thời gian là Gandi.net .)
Cách ký CSR với SHA256 Như
đã nói, hãy sử dụng -sha256
tham số để ký CSR của bạn với SHA256 như vậy:
openssl req -new -newkey rsa: 2048 -nodes -sha256 -out www.example.com.sha256.csr -keyout www.example.com.key -subj "/ C = US / ST = exampleState / L = exampleLocation / O = Ví dụ tổ chức / CN = www.example.com "
Cách kiểm tra loại băm của CSR
Và đây là cách bạn tìm ra loại băm của CSR của mình:
$ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature
Signature Algorithm: sha256WithRSAEncryption
Tốt Đó là sử dụng SHA256 giống như chúng ta muốn.