Назад | Перейти на главную страницу

Strongswan PKI - сертификаты ED25519 - у ответчика OCSP возникают проблемы

Я пытаюсь настроить ocsp для сертификатов, сгенерированных из strongswan PKI, используя его как CA. Если я попытаюсь использовать openssl, он просто выбросит Can't open index.txt.attr for reading, No such file or directory Пробовал переделать строку сертификата. По-прежнему не работает. Я просто врезаюсь в стену, и мне нужно взглянуть на нее свежим взглядом.

  1. Есть ли способ развернуть Strongswan?

Если да - 1а. Как? Не могу найти по нему никакой документации. Если нет - 1б. на правильном ли я пути с OpenSSL?

  1. Как мне исправить это сообщение об ошибке - используя strongswan - мне кажется, что я не могу создать index.txt

Также это команда, которую я использую, чтобы попытаться запустить это - openssl ocsp -index index.txt -CA ca.crt.pem -port 43450 -rkey ocsp.key.pem -rsigner ocsp.issuecrt.pem -resp_no_certs -nmin 60 -text

Ранее я настраивал OpenSSL апреля 2018 года для совместимости алгоритмов ed25519 и X25519. Прежде чем понять, что я не могу заставить crl работать. Затем начал развертывание strongswan для компонентов pki и CA (полностью установил strongswan вручную через source, configure, make, make test, make install - установка зависимости, когда я обнаружил необходимость. Это сработало, мой crl работал, но теперь я могу '' не получил ocsp, и я занимался этим большую часть 2-3 недель, пытаясь понять это, и у меня такое чувство, что я просто толстый и пользователь PEBKAC. Надеюсь, вы, ребята, и девушки сможете помочь. Если вам нужно любой запрос дополнительной информации, и я отредактирую и предоставлю.

Если вы использовали strongSwan инструмент pki для создания вашего центра сертификации не будет файла index.txt, который нужен OpenSSL для своего сервера OCSP. OpenSSL создает и изменяет эти файлы "базы данных" индекса при выдаче / отзыве сертификатов через openssl ca. Поэтому, если вы хотите использовать сервер OCSP с сертификатами, которые не были созданы с помощью этого инструмента, вам необходимо создать этот файл вручную.

К счастью, файлы index.txt представляют собой простые текстовые файлы, которые можно легко создавать по мере необходимости. Файлы содержат следующую информацию для каждого сертификата, по одному в строке, с каждым полем, разделенным табуляцией:

  1. Статус: имеет значение "V" (действителен), "R" (отозван) или "E" (срок действия истек)
  2. Дата / время истечения срока в UTC (формат: YYMMDDHHMMSSZ)
  3. Дата / время отзыва (тот же формат, что и выше, пусто для действительных или просроченных сертификатов) и необязательная причина (через запятую, например, «заменен» или «keyCompromise»)
  4. Шестнадцатеричный порядковый номер сертификата
  5. Имя файла сертификата (OpenSSL не использует его и устанавливает значение «unknown»), также может быть пустым.
  6. DN субъекта сертификата (RDN разделяются косой чертой), необязательно

Если у вас есть действующий сертификат, вы можете создать запись для файла index.txt с помощью следующего сценария bash (передайте путь к сертификату в формате PEM в качестве первого аргумента сценария):

#!/bin/bash

crt=$1
exp=$(date -d "$(openssl x509 -enddate -noout -in $crt | cut -d= -f 2)" +"%y%m%d%H%M%SZ")
ser=$(openssl x509 -serial -noout -in $crt | cut -d= -f 2)
sub=$(openssl x509 -subject -noout -in $crt | cut -d= -f 2- | cut -d' ' -f 2-)
echo -e "V\t$exp\t\t$ser\tunknown\t$sub"

Чтобы отозвать сертификат, вы можете вручную изменить V к R и добавьте дату и (необязательно) причину в третий столбец, например создан с $(date +"%y%m%d%H%M%SZ,keyCompromise"). Теоретически вы также можете использовать openssl ca для этого (а также использовать openssl ca updatedb чтобы отметить сертификаты с истекшим сроком действия), но для этого требуется настроить соответствующий файл конфигурации. Если вы изначально не хотели управлять своим ЦС с помощью OpenSSL, это могло быть излишним.

Также обратите внимание, что по сравнению с CRL вы должны перечислить все сертификаты в файле как openssl ocsp не ответит со статусом «хорошо», если не найдет действительную запись для серийного номера сертификата.