Рейтинг:0

Почему клиент StrongSwan charon-cmd требует параметр командной строки --cert для нескольких сертификатов цепочки ЦС?

флаг cn

У меня есть сервер 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», чтобы полностью доверять самозаверяющему сертификату. Но это кажется излишним. Если я доверяю промежуточному сертификату ЦС, то, очевидно, я также должен доверять его сертификату ЦС, верно?

Это баг или фича? Если это функция, какую пользу она дает?

Рейтинг:1
флаг cn

Промежуточные сертификаты ЦС в настоящее время не принимаются в качестве якоря доверия в strongSwan, только самозаверяющие корневые сертификаты ЦС.

Если сервер отправляет промежуточный сертификат ЦС вместе с сертификатом сервера, вам нужно доверять только корневому сертификату ЦС (т. --cert GoDaddyCA2.crt будет достаточно). Если это не так, убедитесь, что он установлен, и проверьте конфигурацию (например, send_cert в swanctl.conf). Только если это не вариант, вы не можете избежать настройки обоих сертификатов на клиенте.

deltamind106 avatar
флаг cn
Спасибо за этот совет. У меня нет каталога /etc/swanctl в моем дистрибутиве Linux (Ubuntu 18.04), поэтому у меня нет файла swanctl.conf (или я не знаю, где он находится). У меня есть StrongSwan 5.6.2 несколько лет назад, так что, может быть, это новый файл конфигурации? Есть ли аналогичная конфигурация в 5.6.2, которая позволит мне настроить сервер для отправки промежуточного сертификата CA?
флаг cn
Вы проверили, отправлено ли оно уже? В противном случае проверьте настройку _leftsendcert_ в ipsec.conf и убедитесь, что промежуточный сертификат CA установлен в `/etc/ipsec.d/cacerts`.
deltamind106 avatar
флаг cn
Вы были правы, как только я добавил промежуточный сертификат в каталог /etc/ipsec.d/cacerts, он автоматически отправил его. Так что нечего было настраивать, и теперь он работает без необходимости доверять клиенту несколько сертификатов. Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.