Как я могу указать срок действия сертификата в файле конфигурации OpenSSL?

1000
Michael Tingey

Я довольно новичок в OpenSSL, и я пытаюсь указать сертификат, который действителен только один час, используя OpenSSL. Мне удалось это сделать с openssl caпомощью параметров -startdateи -enddate, но мне было интересно, можно ли установить допустимость в файле конфигурации для использования с openssl req? Если да, не могли бы вы привести пример?

Я попытался использовать подобный синтаксис как:

privateKeyUsagePeriod = ASN1:SEQUENCE:privateKeyUsagePeriod

[privateKeyUsagePeriod]

notBefore = IMPLICIT:0,GENERALIZEDTIME:20170501000000Z

notAfter = IMPLICIT:0,GENERALIZEDTIME:22910501000000Z

Этот синтаксис, кажется, не работает на валидность. Спасибо всем заранее за любые рекомендации, которые вы можете дать мне.

3

1 ответ на вопрос

3
dave_thompson_085

Во-первых, ваш пример для PrivateKeyUsagePeriod неверен; notAfter должен быть помечен как 1, а не как 0. Хотя практически никакое программное обеспечение никогда не смотрит на PKUP, эта ошибка может не иметь значения.

Более конкретно, PKUP является расширением, а расширения X509v3 используют изменяющуюся структуру OID +, которая требует, чтобы OpenSSL разрешал практически любой тип ASN.1 для поддержки будущих дополнений без изменения кода. Допустимость является частью фиксированной части (начиная с v1) и реализуется конкретным кодом, и в любом случае это не тот же тип (не помеченный, не ДОПОЛНИТЕЛЬНЫЙ и ВЫБОР ).

Ибо openssl caвы можете использовать default_startdateи default_enddateв разделе конфигурационного файла имя default_ca(не имя x509_extensions) вместо параметров командной строки. См. Справочную страницу в вашей системе или в Интернете в разделе «ОПЦИИ ФАЙЛА КОНФИГУРАЦИИ».

Для других операций командной строки в настоящее время нет кода, поддерживающего это; Вы можете написать свое собственное приложение (я), вызывающее библиотеку, или, поскольку OpenSSL является открытым исходным кодом, просто сделайте копию и измените ее.