Как создать собственную цепочку сертификатов?
Я хотел бы настроить свой собственный OCSP Responder (только для тестовых целей). Для этого мне нужен корневой сертификат и несколько сертификатов, сгенерированных на его основе.
мне удалось создать самоподписной сертификат, используя openssl. Я хочу использовать его в качестве корневого сертификата. Следующим шагом будет создание производных сертификатов. Однако, кажется, я не могу найти документацию о том, как это сделать. Кто-нибудь знает, где я могу найти эту информацию?
Правка Оглядываясь назад, я не получил полного ответа на свой вопрос. Чтобы прояснить проблему, я буду представлять свою цепочку сертификатов вот так:
ROOT -> A -> B -> C -> …
На данный момент я могу создать сертификаты ROOT и A, но не знаю, как сделать более длинную цепочку.
Моя команда создания корневого сертификата:
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
Сертификат A создается вот так:
openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer
Эта команда неявно зависит от корневого сертификата, для которого она находит необходимую информацию в файле конфигурации openssl. Однако
Сертификат B должен полагаться только на A, который не зарегистрирован в конфигурационном файле, поэтому предыдущая команда здесь не сработает.
Какую командную строку использовать для создания сертификатов B и выше?
Правка Я нашел ответ в этой статье . Сертификат B (цепочка A -> B) можно создать с помощью этих двух команд:
# 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
Я также изменил файл openssl.cnf:
[usr_cert]
basicConstraints=CA:TRUE # prev value was FALSE
Этот подход, кажется, работает хорошо.