Brakuje mi czegoś podstawowego i oczywistego w podpisywaniu CSR klienta poleceniem openssl.Jak podpisać CSR klienta za pomocą openssl?
Mam (symulowane) dwie organizacje, jedna to organizacja urzędu certyfikacji (istnieje w Kalifornii), a druga to organizacja klienta, która jest w stanie WA.
Utworzyłem urząd certyfikacji w systemie Linux za pomocą komendy openssl, wykonując następujące kroki. http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with-openssl.php
Mam dwa pliki teraz 1. cakey.pem zawierający prywatny klucz CA. Ta prywatna jest również powiązana z hasłem. 2. cacert.pem zawierający samopodpisany certyfikat CA
Następnie chcę podpisać wszystkie raporty CSR od klientów. Klient ze stanu Waszyngton wysyła mi plik client-csr.pem. Czytam tę stronę podręcznika o podpisywaniu CSR i przykładów na końcu. http://www.openssl.org/docs/apps/ca.html
Polecenie, które próbuję, a komunikat o błędzie wygląda następująco: uruchamiam te polecenia w systemie CA, w tym samym systemie, w którym utworzyłem plik cookie.pem (klucz prywatny CA) i cacert.pem (CA's autopodpisywany certyfikat)
$ openssl ca -in demoCA/csrs/client-csr.pem -out client-cert.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
The stateOrProvinceName field needed to be the same in the
CA certificate (California) and the request (WA)
pytanie brzmi, dlaczego nazwa państwo musi być taka sama dla obu CA-świadectwa, a klient-CSR.
klient nie jest w „Kalifornii”, a więc podczas tworzenia CSR, umieszczają własną nazwę stanu (WA). Jako instytucja certyfikująca zweryfikowałem, że klient rzeczywiście jest w WA, a plik CSR rzeczywiście pochodził z im. Chcę podpisać ten raport bezpieczeństwa i zwrócić certyfikat klientowi.
Proszę sprawdzić swój plik konfiguracyjny. To musi być egzekwowane przez konfigurację, a nie przez OpenSSL i X.509. – doptimusprime