Отрицательные проверки X.509 и CRL¶
Эти тесты временно разрывают VPN. Проводите их только на отдельных VM или в согласованное окно, с сохранением CRL и ключей. После каждого теста верните работающую конфигурацию и проверьте данные.
Нет CRL при строгой проверке¶
На тестовом узле А:
swanctl --terminate --ike gost-x509
install -d -m 700 /root/ike-negative
mv /etc/swanctl/x509crl/niceos-ike-current.der /root/ike-negative/crl.saved.der
swanctl --load-creds --clear
swanctl --list-certs --type x509_crl
swanctl --initiate --child gost-x509 # ОЖИДАЕМ ОТКАЗ
swanctl --list-sas # пусто
В реальных испытаниях:
certificate status is not available
constraint check failed: RULE_CRL_VALIDATION is SKIPPED, but requires at least GOOD
initiate failed
Восстановление:
mv /root/ike-negative/crl.saved.der /etc/swanctl/x509crl/niceos-ike-current.der
swanctl --load-creds --clear
swanctl --initiate --child gost-x509
Не запускайте тест, пока имя и наличие текущей CRL не проверены. Если команда прервана, сначала верните резервный файл.
Действительно отозванный сертификат¶
В контрольном испытании создан дополнительный сертификат правой VM, до отзыва успешно прошёл IKE_AUTH и передачу 10/10. Затем CA зарегистрировал отзыв keyCompromise в новой CRL №0x1002. Системный charon написал:
crl correctly signed by "CN=NiceOS-RPM-Test-GOST-CA"
certificate was revoked ..., reason: key compromise
no trusted GOST512 public key found for 'niceos-right'
initiate failed
Для воспроизведения создайте отдельную тестовую ключевую пару/сертификат с новым serial и допустимым SAN. Сначала докажите, что с ней VPN устанавливается, после чего выполняйте отзыв через openssl ca -revoke и перевыпуск CRL. Не отзывайте для теста текущий рабочий сертификат и не подменяйте действительную CRL старой, чтобы имитировать «восстановление».
Ошибка HTTPS при отсутствии локальной CRL¶
На VM2 с конфигурацией crl_uris в лаборатории разрешено временно заблокировать единственный тестовый порт:
iptables -I OUTPUT 1 -d 192.168.10.15 -p tcp --dport 18444 -j REJECT
# После удаления локальной CRL и swanctl --load-creds --clear:
swanctl --initiate --child gost-x509 # ОЖИДАЕМ ОТКАЗ
swanctl --list-sas
iptables -D OUTPUT -d 192.168.10.15 -p tcp --dport 18444 -j REJECT
Нужно видеть fetching crl, libcurl request failed [7], crl fetching failed, RULE_CRL_VALIDATION is FAILED, but requires at least GOOD, пустую SA. Затем вернуть CRL и проверить повторное подключение (10/10). Держите доступ к консоли и не блокируйте TCP/22.
Дополнительные проверки, пока не подтверждённые¶
Повреждённая подпись, TLS hostname mismatch, просроченная CRL, откат номера CRL, OCSP, CA rotation, динамическое переиздание при массовом разрыве — самостоятельная программа испытаний. Отдельный раздел ограничений не допускает объявлять их PASS заранее.