У меня есть сервер StrongSwan Charon на Ubuntu 18.04. Я подключаюсь к этому серверу с помощью клиента StrongSwan charon-cmd с другого компьютера с Ubuntu Linux.
Команда, которую я использую с клиентского компьютера для подключения к серверу:
charon-cmd --cert ./GoDaddyCA1.crt --cert GoDaddyCA2.crt --host xxx.example.com --identity myusername
Это прекрасно работает, но я не понимаю, зачем мне нужны две опции «--cert» в командной строке, чтобы доверять обоим сертификатам GoDaddy CA в цепочке.
Мой личный сертификат обслуживается сервером StrongSwan, и его авторитетом является GoDaddyCA1.crt. Сертификат GoDaddyCA1.crt имеет полномочия сертификата GoDaddyCA2.crt. GoDaddyCA2.crt — это самозаверяющий корневой сертификат.
Итак, авторитетная цепочка:
MyPersonalCert.crt -> GoDaddyCA1.crt -> GoDaddyCA2.crt
Значение параметра командной строки charon-cmd «--cert» состоит в том, чтобы объявить, что «это сертификат, которому я доверяю». Таким образом, я ожидаю, что если доверять GoDaddyCA1.crt, то и моему личному сертификату следует доверять.
Но этого недостаточно для charon-cmd. Клиент charon-cmd требует, чтобы я указал «--cert», чтобы полностью доверять самозаверяющему сертификату. Но это кажется излишним. Если я доверяю промежуточному сертификату ЦС, то, очевидно, я также должен доверять его сертификату ЦС, верно?
Это баг или фича? Если это функция, какую пользу она дает?