Jak utworzyć żądanie certyfikatu TLS SHA256

10

Jeden z naszych partnerów biznesowych prosi nas o użycie certyfikatu TLS SHA256 do łączenia się z ich interfejsami API. Nie jestem pewien, jak wygenerować te żądania. W przeszłości używałem openssl do tworzenia tych żądań, ale wygenerował on certyfikat SSL przy użyciu SHa1. Czy mogę użyć openssl do wygenerowania tego żądania? Jeśli nie, jak wygenerować to, o co proszą?

Nie jestem ekspertem w tej dziedzinie, więc nawet nie wiem, czy to, o co pytam, ma sens.


źródło
Byłoby dla mnie zabawne, gdybyś był jedną z 12 osób, które musiałem dziś powiedzieć, aby wrócił z SHA256 CSR zamiast SHA1.
Hyppy
@Hyppy Mam nadzieję, że nadal podoba Ci się to pod koniec roku :)
Maarten Bodewes

Odpowiedzi:

12

Hash CSR i hash cert nie są powiązane

Typ skrótu na żądanie i na rzeczywistym certyfikacie nie są ze sobą powiązane.

Urząd certyfikacji sprawdza podpis w CSR. W ten sposób urząd certyfikacji może sprawdzić, czy CSR nie został zmieniony podczas transportu. To wszystko, co robi podpis w CSR.

Nie ma oficjalnego (ani nawet półoficjalnego) wewnątrz-pasmowego sposobu mówienia CA, jaki chcesz skrót. Zamiast tego firma CA może prowadzić wiele urzędów certyfikacji, z których jeden używa wyłącznie SHA256. A jeśli chcesz SHA256, prześlij swój raport CSR na stronie internetowej tego konkretnego CA-tylko SHA256. (I nie na stronie internetowej SHA1-CA.)

Często teorią jest: „Jeśli prześlę CSR podpisany za pomocą SHA1, mój certyfikat zostanie podpisany za pomocą SHA1”. Zazwyczaj nie jest to robione. ( Jedyny znany mi urząd certyfikacyjny, który to robił przez pewien czas, to Gandi.net .)

Jak podpisać CSR za pomocą SHA256
To powiedziawszy, użyj tego -sha256parametru, aby podpisać swój CSR za pomocą SHA256 w następujący sposób:

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 = ExampleOrganisation / CN = www.example.com ”

Jak sprawdzić typ skrótu CSR
A oto, w jaki sposób można sprawdzić typ skrótu swojego CSR:

$ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature  
    Signature Algorithm: sha256WithRSAEncryption

Dobrze. Używa SHA256 tak, jak chcieliśmy.

StackzOfZtuff
źródło
5

Jeśli korzystasz z OpenSSL, możesz po prostu dodać -sha256opcję wiersza poleceń, która wygeneruje CSR z algorytmem podpisu SHA-256.

Hippy
źródło