Я хотел бы настроить свой собственный ответчик OCSP (только для целей тестирования). Это требует, чтобы у меня был корневой сертификат и несколько сертификатов, созданных из него.
мне удалось создать самозаверяющий сертификат с помощью OpenSSL. Я хочу использовать его в качестве корневого сертификата. Следующим шагом будет создание производных сертификатов. Однако я не могу найти документацию о том, как это сделать. Кто-нибудь знает где я могу найти этого информацию?
Edit
Оглядываясь назад, мой вопрос еще не полностью ответил. Чтобы прояснить проблему, я представлю цепочку сертификатов следующим образом:
ROOT -> A -> B -> C -> ...
в настоящее время я могу создать ROOT и сертификаты, но я не узнал, как сделать более длинную цепочку.
моя команда для создания корневого сертификата:
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
сертификат является создан примерно так:
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 и выше?
Edit
Я нашел ответ в этот статья. Сертификат 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
этот подход, кажется, работает хорошо.