Глядя на его исходный код , кажется, что инструмент req
не поддерживает чтение количества дней из файла конфигурации. Переменная days
изменяется только в нескольких очевидных местах.
Это отличается в ca
инструменте , где вы можете увидеть количество дней, считываемых из файла конфигурации здесь .
Существует несколько способов создания самозаверяющего сертификата для ЦС. Использование инструмента req
кажется популярным для этого, вероятно, потому что вы можете сделать это в одну строку. Другой вариант, который я предпочитаю, заключается в том, чтобы (дополнительно) использовать инструмент ca
, как вы это делаете с любым сертификатом. Таким образом, даже ваш самозаверяющий сертификат CA попадает в CA-администрацию. Это также дает вам способ сделать то, что вы просите, с опцией конфигурации default_days
в разделе my_ca
.
В качестве примера вы можете выполнить следующие команды. Сначала создайте запрос на подпись сертификата (CSR) с одновременным созданием пары ключей:
openssl req -newkey rsa:2048 -keyout dist/ca_key.pem -out ca_csr.pem -config openssl/ca.cnf
Затем отправьте CSR в CA, как и в случае с любым CSR, но с опцией -selfsign
. Это требует, чтобы ваша структура каталогов CA была подготовлена в первую очередь, что вам придется делать в любом случае, если вы хотите настроить свой собственный CA. Вы можете найти учебник по этому здесь , например. Отправка запроса может быть сделана следующим образом:
ca -selfsign -keyfile dist/ca_key.pem -in ca_csr.pem -out dist/ca_cert.pem \
-outdir root-ca/cert -config openssl/ca.cnf
Будет применена настройка default_days
в разделе my_ca
вашего файла конфигурации, как и в моем случае:
$ openssl x509 -enddate -noout -in ./dist/ca_cert.pem
notAfter=Aug 23 15:21:17 2028 GMT
Обратите внимание, что все эти команды зависят от содержимого ваших файлов конфигурации. Возможно, вам придется поиграть с ними, чтобы заставить их работать на вас, но это дает вам общий подход.