ГОСТ CRL: выпуск, проверка, отзыв и строгая политика¶
CRL (Certificate Revocation List) — подписанный удостоверяющим центром перечень отозванных сертификатов. revocation = strict требует положительного подтверждения статуса удалённого сертификата при новом IKE_AUTH. Если нет пригодной CRL и не удалось получить актуальную информацию, соединение отклоняется; при отзыве — также отклоняется.
1. Проверить существующую CRL¶
На узле с OpenSSL ГОСТ Engine:
export OPENSSL_CONF=/etc/pki/niceos-gost/engine.cnf
openssl crl -inform DER -in /etc/swanctl/x509crl/niceos-ike-current.der \
-CAfile /root/niceos-ike-node/ca.pem -verify -noout -crlnumber -nextupdate
swanctl --list-certs --type x509_crl
В системном charon видны issuer, nextUpdate, номер списка, количество и серийные номера отозванных сертификатов. Список без отозванных сертификатов — нормальная начальная ситуация; отсутствие списка — не то же самое.
2. Выпустить новую CRL на машине УЦ¶
D=/root/niceos-ike-ca
export OPENSSL_CONF=/etc/pki/niceos-gost/engine.cnf
openssl ca -config "$D/ca.cnf" -gencrl -batch -out "$D/current.pem"
openssl crl -in "$D/current.pem" -outform DER -out "$D/current.der"
openssl crl -inform DER -in "$D/current.der" \
-CAfile "$D/ca.pem" -verify -noout -crlnumber -nextupdate
Номер CRL растёт при очередном выпуске (при начальном crlnumber=1000 первый будет 0x1000). Распространяйте одинаковую, подписанную CRL на оба узла. Устанавливайте её атомарно в целевой путь: сначала загрузка/проверка временного файла, затем переименование. Для проверки строгости не подменяйте списки более старыми версиями.
3. Отозвать сертификат после компрометации¶
Проводить только в учебной PKI или по регламенту продуктивного УЦ. На CA:
D=/root/niceos-ike-ca
export OPENSSL_CONF=/etc/pki/niceos-gost/engine.cnf
# Подставьте действительный сертификат, который действительно требуется отозвать:
openssl ca -config "$D/ca.cnf" -revoke "$D/right.pem" \
-crl_reason keyCompromise -batch
openssl ca -config "$D/ca.cnf" -gencrl -batch -out "$D/current.pem"
openssl crl -in "$D/current.pem" -outform DER -out "$D/current.der"
openssl crl -in "$D/current.pem" -text -noout | grep -A 12 'Revoked Certificates'
Отзыв является реальным действием и не отменяется откатом файла CRL. Для непрерывности сервиса выпустите новый сертификат с новым ключом, проверьте цепочку и подпись, затем распространите CRL. На стенде реально проверялся отзыв отдельного временного сертификата, чтобы основной рабочий сертификат оставался действительным.
4. Загрузить новую CRL на узлах¶
После проверки CA подписи и актуальности:
install -m 644 current.der /etc/swanctl/x509crl/niceos-ike-current.der
swanctl --load-creds --clear
swanctl --list-certs --type x509_crl
Если на узле несколько IPsec-туннелей, --clear перечитывает их общие credentials — предварительно проверьте совместимость и запланируйте окно обслуживания. Существующая SA не обязана завершиться немедленно из-за обновления CRL. Для проверки запрета создайте новую IKE SA:
5. Реально проверенные отрицательные ситуации¶
На системном RPM от 26.10.2026 при удалённой CRL получено RULE_CRL_VALIDATION is SKIPPED, but requires at least GOOD; при отозванном временном сертификате — certificate was revoked ... key compromise и AUTH_FAILED. При заблокированном HTTPS и отсутствии локального файла получено RULE_CRL_VALIDATION is FAILED, but requires at least GOOD. Процедуры безопасного тестирования в негативных проверках.
6. Регламент¶
До nextUpdate обновляйте и публикуйте новую CRL; при истечении срока новая аутентификация в strict-режиме может отказать. Защитите закрытый ключ УЦ, регистрируйте номера CRL, учитывайте время на узлах и не публикуйте внутренние секреты в веб-каталоге. HTTPS-доставка · операции.