Jak stworzyć własny łańcuch certyfikatów?
Chciałbym skonfigurować mój własny OCSP Responder (tylko do celów testowych). Wymaga to ode mnie posiadania certyfikatu głównego i kilku certyfikatów wygenerowanych na jego podstawie.
Udało mi się stworzyć samopodpisany certyfikat przy użyciu openssl. Chcę go użyć jako certyfikatu głównego. Następnym krokiem będzie utworzenie certyfikatów pochodnych. Nie mogę jednak znaleźć dokumentacji, jak to zrobić. Czy ktoś wie, gdzie mogę znaleźć te informacje?
Edit Patrząc wstecz, moje pytanie nie jest jeszcze w pełni odpowiedzią. Aby wyjaśnić problem, będę reprezentował mój łańcuch certyfikatów w ten sposób:
ROOT —–> A —–> B —–> C —–> …
Obecnie jestem w stanie utworzyć certyfikaty ROOT i A, ale nie dowiedziałem się, jak utworzyć dłuższy łańcuch.
Moje polecenie do utworzenia certyfikatu root to:
openssl req -new -newkey rsa:1024 -nodes -out ca.csr -keyout ca.key
openssl x509 -trustout -signkey ca.key -days 365 -req -in ca.csr -out ca.pem
Certyfikat A tworzę w ten sposób:
openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer
To polecenie niejawnie zależy od certyfikatu głównego, dla którego znajduje wymagane informacje w pliku konfiguracyjnym openssl.
Certyfikat B musi jednak opierać się tylko na A, który nie jest zarejestrowany w pliku konfiguracyjnym, więc poprzednie polecenie nie zadziała w tym przypadku.
Jakiej linii poleceń powinienem użyć, aby utworzyć certyfikaty B i kolejne?
Edit Odpowiedź znalazłem w tym artykule . Certyfikat B (łańcuch A - B) może być utworzony za pomocą tych dwóch poleceń:
# Create a certificate request
openssl req -new -keyout B.key -out B.request -days 365
# Create and sign the certificate
openssl ca -policy policy_anything -keyfile A.key -cert A.pem -out B.pem -infiles B.request
Zmieniłem również plik openssl.cnf:
[usr_cert]
basicConstraints=CA:TRUE # prev value was FALSE
To podejście wydaje się działać dobrze.