Пройдите четыре вопроса по порядку, и диалог CA перестанет быть двусмысленным. Какой материал оператор действительно выпустил, что профиль уже содержит, какое поле спрашивает и что происходит после загрузки файла? Остановитесь на первом вопросе, на который не можете ответить по инструкциям самого оператора, потому что догадки дальше — это ровно тот путь, на котором публичный сертификат CA оказывается в паре с закрытым ключом, который никогда не должен был покидать сервер.

Порядок важен: последние два вопроса имеют смысл только тогда, когда вы знаете, какой материал должен существовать.

Начните с того, что профиль уже содержит

Откройте профиль в текстовом редакторе и поищите блок ca прежде чем искать файл. Встроенный блок ca с публичным CA оператора означает, что профиль самодостаточен, а клиент, который всё ещё просит файл CA, возможно, читает другой профиль или неполный импорт. Если же в профиле есть строка ca с путём, этот путь в одних интеграциях относителен рабочего каталога клиента, а в других абсолютен. Запишите, какая форма у вас, прежде чем что-либо менять.

ca /absolute/path/operator-ca.crt
auth-user-pass
remote-cert-tls server

Проверьте поставленный пакет на файлы, на которые ссылается профиль: сертификат CA, иногда отдельный сертификат клиента и ключ, а возможно, файл tls-auth или tls-crypt. Профиль, который ссылается на четыре файла, а приходит с двумя, неполон, и никакое указание на поля это не исправит. Попросите у оператора недостающую часть, вместо того чтобы подставлять сертификат, который случайно оказался у вас.

Разделите четыре вида материала

Сертификат CA — публичный материал, используемый для проверки подлинности сервера. Сертификат клиента удостоверяет пользователя или устройство перед сервером. Закрытый ключ — секретная половина этого сертификата клиента, и он никогда не должен быть ключом подписи CA или серверным ключом. Материал tls-auth или tls-crypt — отдельный общий секрет, защищающий канал управления. Эти четыре не взаимозаменяемы, а направление поля CA на сертификат клиента даёт ошибку проверки, которая выглядит как проблема доверия.

Аутентификация только по паролю меняет то, какой из четырёх вам нужен, а не их смысл. С auth-user-pass и remote-cert-tls server клиент по-прежнему проверяет сервер по CA, поэтому поле CA появляется даже тогда, когда сертификата клиента нет. Политика оператора решает, требуется ли также сертификат клиента, и никакой диалог не может вам это сообщить.

Направьте клиент на файл доверия

Выберите сам файл сертификата CA, а не папку, которая его содержит, и не пакет .p12, содержащий удостоверение клиента. В Windows синтаксис пути и выбор файла ведут себя иначе, чем в примерах для Linux в большинстве руководств, поэтому используйте то, что принимает установленный клиент, и убедитесь, что файл доступен для чтения учётной записи, которая его запускает. Проблема прав и отсутствующий файл выглядят в диалоге одинаково, но дают разные строки журнала. После выбора снова откройте настройки профиля, чтобы убедиться, что клиент сохранил выбор.

<ca>
-----BEGIN CERTIFICATE-----
...operator-provided public CA...
-----END CERTIFICATE-----
</ca>

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

Читайте следующую ошибку, а не ту же

Смысл правильного CA в том, чтобы изменить ошибку, а не заставить её исчезнуть. Сбой идентичности сервера после загрузки CA означает, что сертификат не совпал с ожидаемым именем или ожиданием remote-cert-tls, и это другое исправление, чем отказ в пароле. Отказ в пароле означает, что уровень TLS прошёл, а учётные данные неверны. Сохраните первое новое сообщение; именно оно полезно.

Клиент, который подключается, но никуда не попадает, полностью прошёл мимо доверия и теперь сталкивается с вопросом маршрутизации или DNS.

Никогда не отключайте проверку, чтобы пройти этот диалог. Клиенту, который принимает любой сертификат, незачем запрашивать CA, и туннель, который он строит, — не тот, что задумывал оператор.

Похожие статьи