Извлечение запрашиваемого срока действия из запроса на подпись сертификата с использованием OpenSSL - PullRequest
7 голосов
/ 06 апреля 2009

Мы используем частный центр сертификации на базе OpenSSL для аутентификации наших клиентов. Мы предоставляем простую веб-утилиту, которая позволяет им загрузить файл CSR для подписи центра сертификации.

В настоящее время мы можем выдавать сертификаты только на определенный срок, в настоящее время 365 дней. Однако наши клиенты спросили, могут ли они указать срок действия своих сертификатов.

Я бы предпочел не спрашивать пользователя, какой период действия он хочет получить, поскольку он должен указывать период действия при создании своего CSR, и имеет смысл извлечь этот период из CSR при подписании сертификата. Однако я не могу понять, как это сделать: обычные вещи, которые OpenSSL позволяет вам делать для отладки CSR, сертификатов и ключей, не показывают соответствующую информацию: вот пример вывода «openssl req -text -noout < csrfile ":

$ openssl req -text -noout < my.csr 
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=GB, L=London, O=example.com, CN=customer/emailAddress=ssl@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:c4:3b:11:7f:61:31:19:97:b6:26:19:01:e7:c6:
                    c3:d5:03:a5:f6:5a:4d:e2:03:d0:4e:76:49:d0:7f:
                    59:92:bf:5e:12:b3:b0:7e:20:5b:d8:a2:3f:cb:50:
                    c1:64:e5:48:04:c3:b2:04:e3:f2:4c:2f:0e:e2:a6:
                    c3:7c:36:24:dc:97:c9:f0:ba:ad:87:0f:71:45:9c:
                    6a:7f:d4:4c:d5:31:8e:49:a8:e4:3d:c4:ec:5e:54:
                    bf:f9:ba:ce:21:4c:11:15:7d:f0:d3:7a:77:f6:66:
                    5d:07:4e:4a:d3:0e:f0:52:0d:d9:cf:81:86:fe:9b:
                    c8:f8:e4:8d:d6:d1:d0:85:7f
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption
        5e:4c:38:59:95:e5:11:b4:a3:d5:88:1f:3c:c0:33:67:cb:b2:
        14:85:73:c3:5a:b8:23:bf:1d:25:2b:a9:38:93:da:fb:67:17:
        26:6c:79:07:dd:7f:3c:3f:b0:33:17:d1:c2:41:f7:c9:ce:1e:
        32:1c:a1:a0:a3:50:67:56:1b:58:d9:b4:48:56:70:00:43:22:
        a9:0c:17:be:67:42:f4:98:d6:d8:c0:d0:4f:6a:73:d1:a8:57:
        91:3c:02:dc:dc:8f:e3:fb:48:28:06:a2:8e:8e:27:b2:39:d7:
        3e:ce:63:ae:66:9b:ec:38:ee:09:77:dc:0f:91:40:ab:28:0f:
        ae:a9

Никаких упоминаний о запрашиваемом сроке действия нигде.

Есть предложения?

Ответы [ 4 ]

6 голосов
/ 06 января 2010

Я пытался выяснить, как запросить определенный период действия в CSR, и, насколько я могу судить, CSR просто не несет эту информацию. Структура CSR определена в PKCS # 10 / RFC2986 и не имеет поля специально для запрошенного периода действия. Атрибуты и расширения, которые могут быть помещены в CSR, перечислены в PKCS # 9, и там нет ничего о периодах действия. И, наконец, я могу сделать openssl asn1parse для моих сгенерированных CSR и обнаружить, что информация о периоде действия не включена, независимо от того, что я передаю openssl req.

3 голосов
/ 10 марта 2016

Я наткнулся на ваш вопрос, исследуя обоснованность КСО. Как уже упоминалось, срок действия не включен в CSR, но мне было любопытно, какой вариант -days многие люди включают в свои примеры для создания CSR. После прочтения документации OpenSSL становится ясно:

-дней n

когда используется опция -x509, это указывает количество дней для сертификации сертификата. По умолчанию 30 дней.

и опция -x509 выводит самозаверяющий сертификат вместо запроса сертификата

-x509

эта опция выводит самозаверяющий сертификат вместо запроса сертификата. Обычно это используется для создания тестового сертификата или самозаверяющего корневого центра сертификации. Добавленные в сертификат расширения (если таковые имеются) указываются в файле конфигурации. Если не указано использование опции set_serial, для серийного номера будет использоваться большое случайное число.

1 голос
/ 08 апреля 2012

Несмотря на то, что вы запрашиваете определенный срок действия для своего сертификата, при создании CSR неясно ожидать, что срок действия будет приемлемым для CA. Большинство ЦС предпочли бы заранее определенный период действия, и немногие ЦС в порядке с запрошенным периодом действия и генерируют CSR соответственно. Теперь перейдем к вопросу, что структура CSR ASN.1 в соответствии со стандартом PKCS # 10 не определяет срок действия. И, таким образом, вы не можете извлечь эту информацию из CSR.

0 голосов
/ 06 апреля 2009

Попробуйте добавить параметр -days xx в команду создания запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...