Входи у VPN за сертифікатом просять у Mac дещо вужче за пароль: використати саме цей закритий ключ, у цьому контексті виконання, щоб довести шлюзу певну особистість. Коли це не вдається, повідомлення зазвичай описує лише останню річ, що пішла не так, а вона рідко буває причиною. Проходження трьох рішень у тому порядку, у якому їх ухвалює система, зберігає діагностику чесною і не дає сприйняти локальну проблему з дозволами як збій перевірки ланцюжка.

Пройдіть вхід у тому порядку, у якому це робить Mac

Спершу клієнт обирає особистість: сертифікат у парі з придатним закритим ключем, доступний через підтримуване сховище або постачальника облікових даних. Далі компонент VPN запитує криптографічну операцію цим ключем, і локальна модель авторизації відповідає. Лише після успіху обох відбувається віддалене рукостискання, де Mac оцінює шлюз, а шлюз оцінює доказ клієнта.

DecisionTypical symptomWhere to look
Identity selectionNo valid identity, wrong certificate offeredProfile and which identity the client picked
Local key useSigning or interaction error before any handshakeExecution context and key access rules
Remote authenticationChain, name or client-admission rejectionGateway identity and what it accepts

Читайте таблицю згори донизу і зупиніться на першому рядку, який не проходить. Усе нижче збою не доведено, тому «сертифікату не довіряють» — такий частий і такий ненадійний висновок.

Що насправді охоплює локальний дозвіл

У моделі в'язки ключів macOS захищені елементи несуть правила доступу, що залежать від операції, і список довірених програм. Підписування закритим ключем — одна з таких операцій, і правила стосуються виконуваного файлу, який її виконує, а не сертифіката як документа. Довідка Apple з контролю доступу також проводить межу між цією моделлю та в'язкою ключів iCloud і схемами груп доступу, тож порада, написана для однієї, не переноситься на іншу.

Звідси випливають два наслідки. Видимий у списку відкритий сертифікат не доводить, що фоновий компонент VPN узагалі може дістатися до цього ключа. А дозвіл, наданий зовнішній програмі, нічого не каже про окремий помічник чи мережеве розширення, бо це інший код з іншими особистостями.

Визначте фактичну реалізацію та підтримуваний нею механізм спільного використання облікових даних, замість копіювати шлях до виконуваного файлу зі старого клієнта. Спершу підтвердьте, яку особистість система взагалі запропонує:

security find-identity -v -p ssl-client

Як читати errSecInteractionNotAllowed

Цей статус повідомляє про недозволену взаємодію із Security Server і нічого не каже про ланцюжки сертифікатів. Читайте його разом з операцією, що його спричинила: запит на підпис, виданий із контексту, який не може показати запит, зазнає невдачі саме так, навіть коли і ключ, і сертифікат цілком чинні. Починати треба з операції, яка це записала, а не зі сховища сертифікатів. Будь-яка зміна довірених якорів залишить помилку точно там, де вона була.

Тож розглядайте код як привід перевірити контекст виконання й авторизацію. Якщо вважати його доказом того, що ЦС шлюзу не є довіреним, ви потрапляєте в неправильну половину проблеми, і зроблена там зміна взагалі не вплине на помилку.

Вузьке виправлення, а не широке

Почніть з інструкцій щодо реєстрації або імпорту від власника з'єднання. Зафіксуйте версію клієнта, обсяг профілю, обрану особистість і першу значущу локальну помилку, бо саме ці чотири факти потрібні під час передачі в підтримку і від них залежить подальше порівняння. Керований профіль або особистість з апаратною підтримкою можуть вимагати, щоб адміністратор чи постачальник виправив передачу, і жодна кількість локальних клацань це не замінить.

Там, де продукт очікує підтвердження користувача, з'ясуйте, який компонент його просить, і схваліть лише цей доступ підтримуваним потоком. Там, де компонент не має способу викликати запит у тому контексті, у якому працює, підготовка має йти документованим постачальником шляхом, а не діалогом, витягнутим з іншого вікна термінала.

У старіших порадах дві зміни об'єднують, і обидві надто широкі. Надання кожній програмі доступу до закритого ключа розширює локальне використання ключа далеко за межі вимоги, а встановлення сертифіката в Always Trust змінює оцінювання сертифікатів для всього на машині. Жодна з них не виражає «цю схвалену реалізацію VPN, що використовує цю передбачену особистість».

Перевірте локально, перш ніж читати шлюз

Після виправлення підтвердьте, що локальна операція успішна перш ніж тлумачити будь-яку відповідь з іншого боку. Якщо підписування тепер працює, подальша відмова за іменем, ланцюжком або допуском клієнта — це новий результат, а не повторення, і вона належить іншому рішенню з іншим відповідальним.

Корисна передача називає, яке з трьох рішень не пройшло, і на цьому зупиняється. Вона ніколи не містить закритий ключ і ніколи не скидає сторонні елементи в'язки ключів у надії, що чистий стан допоможе. Заведіть ці дві звички до інциденту, а не під час нього, коли спокуса спробувати все одразу найсильніша. Заявка зі словами «в'язку ключів перезібрано» майже нічого не повідомляє наступному читачеві про первісну несправність.

Схожі статті