Cách tạo yêu cầu chứng chỉ TLS SHA256


10

Một trong những đối tác kinh doanh của chúng tôi đang yêu cầu chúng tôi sử dụng chứng chỉ TLS SHA256 để kết nối với API của họ. Tôi không chắc chắn làm thế nào để tạo ra những yêu cầu này. Tôi đã sử dụng openssl trong quá khứ để tạo các yêu cầu này nhưng nó đã tạo chứng chỉ SSL bằng SHa1. Tôi có thể sử dụng openssl để tạo yêu cầu này không? Nếu không làm thế nào để tôi tạo ra những gì họ đang yêu cầu?

Tôi không phải là chuyên gia trong lĩnh vực này vì vậy tôi thậm chí không biết những gì tôi đang hỏi có hợp lý hay không.

tls  openssl 

Sẽ thật buồn cười với tôi nếu bạn là một trong số 12 người mà tôi phải nói hôm nay sẽ quay lại với SHA256 CSR thay vì SHA1.
Hyppy

@Hyppy Tôi hy vọng bạn vẫn thấy thú vị vào cuối năm :)
Maarten Bodewes

Câu trả lời:


12

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 -sha256tham 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.


5

Nếu bạn đang sử dụng OpenSSL, bạn chỉ cần thêm -sha256tùy chọn dòng lệnh, sẽ tạo CSR bằng thuật toán chữ ký SHA-256.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.