Сертификат виден в просмотрщике сертификатов Windows, и всё же клиент не может им воспользоваться. Видеть сертификат — значит лишь то, что в хранилище существует открытый объект. Это не доказывает, что процесс подключения найдёт подходящий закрытый ключ или что ему разрешено им пользоваться.

Три объекта должны совпасть. Выбранный сертификат, закрытый ключ за ним и учётная запись, под которой работает клиент, — разные вещи, и каждая может отказать сама по себе.

Три объекта, три ответа

Общинная версия OpenVPN для Windows документирует селектор хранилища CryptoAPI, cryptoapicert, который принимает отпечаток. Значение должно указывать на сертификат, который вы действительно собираетесь использовать, а не на другой с похожим именем. У других приложений на основе OpenVPN может быть совершенно иная модель импорта, поэтому селектор служит доказательством только для той сборки, которая его документирует. Убедитесь, что ваш клиент реализует этот механизм, прежде чем что-то отлаживать дальше.

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

Ведёт ли селектор к правильной идентичности

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

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

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

Может ли эта учётная запись использовать ключ

Доступ к ключу считается по учётной записи. Служба, запланированная задача и интерактивный сеанс рабочего стола могут иметь разные представления о хранилище и разные права на использование закрытого ключа. То, что сертификат виден в вашем собственном сеансе, ничего не говорит об учётной записи службы.

Ключу с аппаратной поддержкой могут понадобиться его поставщик и шаг подтверждения. Службу, которая не может показать запрос, не спасёт экспорт ключа в обычный файл.

Прочитайте локальную ошибку, прежде чем что-то менять. Сбой выбора, сбой подписи и отказ сервера — три разных исхода. Только первые два локальны. Третий означает, что ключ сработал, а сервер решил против сертификата.

Локальное использование не равно согласию сервера

Локальный успех — не разрешение. Даже после того как клиент подпишет своим ключом, сервер по-прежнему оценивает издателя, срок действия, роль и свою политику доступа. Другой сертификат от того же удостоверяющего центра не даёт автоматически тех же прав VPN.

Серверу нужна цепочка доверия, а не копия закрытого ключа клиента. Отправка ключа на сервер никогда не является исправлением проблемы проверки.

Разбирайте сбой по порядку

Сохраняйте точный текст ошибки. Отсутствие права на ключ не должно превращаться в смену удостоверяющего центра, а отказ сервера — в ремонт хранилища. У каждого свои доказательства.

Работайте в том порядке, в котором проявляется сбой: селектор, ключ, учётная запись, затем политика сервера. Справочник сообщества по клиенту описывает селектор хранилища Windows для той версии, которую вы запускаете.

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