Как я могу указать срок действия сертификата в файле конфигурации OpenSSL?
Я довольно новичок в OpenSSL, и я пытаюсь указать сертификат, который действителен только в течение одного часа, используя OpenSSL. Я был успешен в этом с openssl ca
с использованием -startdate
а также -enddate
варианты, но мне было интересно, если можно установить действительность в файле конфигурации для использования с openssl req
? Если да, не могли бы вы привести пример?
Я попытался использовать подобный синтаксис как:
privateKeyUsagePeriod = ASN1:SEQUENCE:privateKeyUsagePeriod
[privateKeyUsagePeriod]
notBefore = IMPLICIT:0,GENERALIZEDTIME:20170501000000Z
notAfter = IMPLICIT:0,GENERALIZEDTIME:22910501000000Z
Этот синтаксис, кажется, не работает на валидность. Спасибо всем заранее за любые рекомендации, которые вы можете дать мне.
1 ответ
Во-первых, ваш пример для PrivateKeyUsagePeriod неверен; notAfter должен быть помечен как 1, а не как 0. Хотя практически никакое программное обеспечение никогда не смотрит на PKUP, эта ошибка может не иметь значения.
Более конкретно, PKUP является расширением, а расширения X509v3 используют изменяющуюся структуру OID+, которая требует, чтобы OpenSSL разрешал практически любой тип ASN.1 для поддержки будущих дополнений без изменения кода. Допустимость является частью фиксированной части (начиная с v1) и реализуется конкретным кодом, и в любом случае это не тот же тип (не помеченный, не опциональный, а CHOICE{UTCTime,GeneralizedTime}).
За openssl ca
ты можешь использовать default_startdate
а также default_enddate
в разделе конфигурационного файла с именем default_ca
(не тот, который назван x509_extensions
) вместо параметров командной строки. См. Справочную страницу в вашей системе или в Интернете в разделе "ОПЦИИ ФАЙЛА КОНФИГУРАЦИИ".
Для других операций командной строки в настоящее время нет кода, поддерживающего это; Вы можете написать свое собственное приложение (я), вызывающее библиотеку, или, поскольку OpenSSL является открытым исходным кодом, просто сделайте копию и измените ее.