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

Проверка OCSP не выполняется в Strongswan (IKEv2)

Мне удалось установить соединение IPsec между двумя (виртуальными) хостами в транспортном режиме, и теперь я хочу, чтобы сервер проверил сертификат клиента с помощью OCSP. На третьем хосте я запустил ответчик OCSP (openssl ocsp -port 80 ...). Я вижу, как сервер может связаться с OCSP, отправить запрос и получить ответ, но, в конце концов, проверка не выполняется.

Вот что говорят журналы на сервере (ответчике IPsec):

charon: 01[CFG] checking certificate status of "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=client@localhost"
charon: 01[CFG]   requesting ocsp status from 'http://ocsp.localhost' ...
charon: 01[CFG]   using trusted ca certificate "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=Tecnalia Root CA"
charon: 01[CFG]   reached self-signed root ca with a path length of 0
charon: 01[CFG]   using trusted certificate "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=ocsp.localhost"
charon: 01[CFG]   using certificate "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=ocsp.localhost"
charon: 01[CFG] no issuer certificate found for "C=ES, ST=Gipuzkoa, L=Donostia-San Sebastian, O=Tecnalia, CN=ocsp.localhost"
charon: 01[CFG] ocsp response verification failed
charon: 01[CFG] ocsp check failed, fallback to crl

Для удобства я реплицировал одинаковые файлы сертификатов на всех хостах (вывод обрезан):

/etc/ipsec.d# ls -lR

./cacerts:
total 4
-rw-r--r-- 1 root root 1367 Nov  2 09:53 ca.cert.pem

./certs:
total 8
-rw-r--r-- 1 root root 1432 Nov  2 09:53 client.cert.pem
-rw-r--r-- 1 root root 1700 Nov  2 09:53 localhost.cert.pem

./crls:
total 0

./ocspcerts:
total 4
-rw-r--r-- 1 root root 1379 Nov 10 09:32 ocsp.cert.pem

Это очень простой путь, по которому CA (ca.cert.pem) подписывает все сертификаты - сертификат сервера (localhost.cert.pem), клиентский (client.cert.pem) и тот, который используется респондентом OCSP (ocsp.cert.pem).

Это то, что у меня на сервере ipsec.conf:

ca strongswan-ca
        cacert=ca.cert.pem
        ocspuri=http://ocsp.localhost
        auto=add

Я думаю, что все связано с этой неприятной ошибкой «сертификат эмитента не найден», но пока не могу сказать, почему это происходит. Если я запрашиваю ответчика OCSP с помощью openssl, он не дает никаких ошибок проверки.

Что ж, оказывается, что это

Для удобства я скопировал одинаковые файлы сертификатов на всех хостах.

и это

Если я запрашиваю ответчика OCSP с помощью openssl, он не дает никаких ошибок проверки

были, ну, ложными. В какой-то момент я испортил свои ключи, и сертификат / ключ OCSP на сервере OCSP были другими, чем на других машинах. Так что @ecdsa совершенно прав в своем комментарии.

Все в порядке с моей опубликованной конфигурацией, и как только я снова восстановил все ключи и сертификаты, все работало нормально.