Як выдаліць састарэлы сертыфікат VPN са сховішча даверу
Выдаленне профілю VPN пакідае сертыфікат у АС, браўзеры або краме праграм. Супастаўце па адбітку, выдаліце самальную копію, потым праверце ланцуг.
Ваш кліент VPN выдалены, профіль знік з Налад, а тунель усё яшчэ ўздымаецца са старымі ўліковымі данымі. Або вы выдаляеце яго, перазагружаецеся і знаходзіце яго назад наступнай раніцай. Ні тое, ні іншае не азначае зламаную кнопку выдалення. Профіль — гэта канфігурацыя; сертыфікат — гэта ключавы матэрыял плюс рашэнне пра давер, запісанае ў сховішчы, на якое профіль толькі паказвае. Які з двух у вас у руках, вызначае, што мусіць значыць 'выдаліць'.
Профіль — не сертыфікат
У наладзе VPN 'сертыфікатам' называюць тры розныя аб'екты. Ідэнтычнасць кліента — гэта канцавы сертыфікат з прыватным ключом, і шлюз выкарыстоўвае яго, каб вырашыць, хто вы. Уласны канцавы сертыфікат сервера і яго прамежкавы сертыфікат — гэта тое, што ваш кліент правярае пры падключэнні. Якар даверу, звычайна каранёвы або прыватны сертыфікат CA, — гэта тое, што робіць ланцуг паддаваным праверцы наогул. RFC 5280 называе гэта якарам даверу, прамежкавым сертыфікатам і канцавой сутнасцю, і ланцуг праходзіць праверку толькі пакуль кожнае звяно падпісвае тое, што ніжэй.
Выдаліце ідэнтычнасць — адна прылада страціць доступ. Выдаліце якар — і кожная праграма, што правярае давер да гэтага сховішча, страціць магчымасць правяраць усё выдадзенае пад ім, уключаючы злучэнні, якія не маюць дачынення да VPN. Гэтая асіметрыя і ёсць уся рызыка тут: корань, усталяваны для аднаго шлюза, часта той самы корань, які падпісвае ўнутраны партал, паштовы сервер або люстэрка пакетаў. Памятайце, які з двух у вас у руках.
Уласнасць вызначае, ці застанецца выдаленне выдаленым. На ноўтбуку, які належыць вам, толькі вы можаце вярнуць сертыфікат. На кіраванай прыладзе профіль канфігурацыі або карысная нагрузка MDM могуць пераўсталяваць яго пры наступнай рэгістрацыі, і менавіта таму ён 'вяртаецца' і таму больш жорсткае выдаленне не дапамагае.
Знайдзіце, якое сховішча ўсё яшчэ трымае яго
Людзі пачынаюць з праграмы Налады, а гэта якраз тое месца, дзе сертыфікат не захоўваецца. Сапраўдныя месцы — гэта сховішчы даверу АС, уласнае сховішча браўзера і прыватнае сховішча праграмы.
| Store | What deleting from it affects |
|---|---|
| Windows CurrentUser\My | your login session only |
| Windows LocalMachine Root | every user and service on the machine |
| macOS login or System keychain | one account, or all of them with sudo |
| Linux ca-certificates bundle | curl, git, Python, anything using the system bundle |
| Firefox cert9.db | Firefox only; it does not read the OS store |
Супастаўляйце па серыйным нумары або адбітку, ніколі па адлюстраваным імені. Адлюстраваныя імёны задае той, хто выдаў сертыфікат, і іх паўторна выкарыстоўваюць: 'Example VPN' можа быць трыма сертыфікатамі з трыма рознымі ключамі, адзін з якіх дагэтуль у штодзённым ужытку.
certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256
На macOS інструмент security дае тыя ж факты, а find-identity паказвае, у якіх сертыфікатаў яшчэ прымацаваны прыватны ключ:
security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client
Выдаляйце вузкі аб'ект, захоўвайце агульнага выдаўца
Экспартуйце перад выдаленнем. Без рэзервовай копіі адзінае аднаўленне — перадаць сертыфікат нанова, а гэта на прыватнай CA азначае вярнуцца да таго, хто кіруе PKI. Экспартаваны PFX — гэта таксама тое, што вы перадаяце, калі выдаленне акажацца памылковым рашэннем.
certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>
Сцяг -user — гэта тое, што людзі забываюць выпадкова. Без яго certutil працуе з сховішчам машыны, а гэта азначае павышаны shell, іншы набор сертыфікатаў і радыус уражання, які цяпер уключае кожны іншы ўліковы запіс на машыне.
На macOS і Linux форма тая ж: вызначце, экспартуйце, потым выдаліце з самага вузкага сховішча, якое тлумачыць сімптом. Выдалення файла ў /usr/local/share/ca-certificates і паўторнага запуску update-ca-certificates дастаткова; --fresh дапамагае толькі тады, калі сімвалічныя спасылкі ў /etc/ssl/certs ужо несумяшчальныя. Сістэмы сямейства RHEL трымаюць якары ў /etc/pki/ca-trust/source/anchors, дзе trust anchor --remove робіць тое ж самае.
sudo security delete-certificate -Z <sha1> /Library/Keychains/System.keychain
sudo rm /usr/local/share/ca-certificates/example-vpn.crt
sudo update-ca-certificates
sudo trust anchor --remove /etc/pki/ca-trust/source/anchors/example-vpn.crt
Перад выдаленнем сертыфіката CA праверце, што яшчэ будуецца ланцугом да яго. Пералік суб'ектаў у наборы — гэта праверка ў два радкі, і яна адказвае, ці выконвае гэты якар іншую працу:
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
| openssl pkcs7 -print_certs -noout | grep -i example
Выдаленне файла — не адкліканне ідэнтычнасці
Лакальнае выдаленне прыбірае адну копію. Прыватны ключ можа ўсё яшчэ ляжаць у p12, прымацаваным да старога тыкета, у папцы рэзервовых копій або на другім ноўтбуку, наладжаным у той жа час. Калі гэта была ідэнтычнасць кліента, шлюз працягвае прымаць любую копію гэтага ключа, пакуль ідэнтычнасць не адхіляць на баку сервера.
Для OpenVPN PKI гэта азначае адкліканне сертыфіката і ўпэўненасць, што CRL, на якую спасылаецца crl-verify , актуальная; easyrsa revoke потым easyrsa gen-crl — кароткая версія. Для шлюза, прывязанага да пастаўшчыка ідэнтычнасці, адключыце карыстальніка або выдаліце прыладу там, бо сертыфікат — толькі адны ўліковыя даныя ў гульні. Выдаленне лакальнай копіі пры актыўным уліковым запісе выглядае як прыбіранне, але ім не з'яўляецца.
Праца з інцыдэнтам мае іншы парадак: спачатку захавайце сертыфікат, яго серыйны нумар і запіс пра адкліканне, потым выдаляйце і адклікайце. Гэтыя запісы нічога не каштуюць і не патрабуюць пакідаць працоўныя ўліковыя даныя на месцы.
Праверце рукапацісканнем і другой праграмай
Правярайце ланцуг звонку, а не з пераліку сховішча, якое вы толькі што змянілі. Сховішча паказвае ваша змяненне; рукапацісканне паказвае вынік.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com \
-CAfile /etc/ssl/certs/ca-certificates.crt -verify_return_error < /dev/null
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt vpn-gateway.pem
Код вяртання 0 азначае, што астатнія якары ўсё яшчэ ўхваляюць шлюз. Памылка ланцуга пасля выдалення якара — гэта чаканы вынік, і яна пацвярджае, што вы трапілі ў якар, які выкарыстоўваецца, а не ў дублікат у сховішчы, якое кліент ніколі не чытае. Калі злучэнне ўсё яшчэ працуе, шукайце другую копію, сховішча, убудаванае ў праграму, або замацаваны сертыфікат — усё гэта часта сустракаецца ў кліентах, што пастаўляюць уласны спіс даверу.
Потым праверце нешта незвязанае: унутраны сайт, паштовы кліент, люстэрка пакетаў. Гэта танна вымярае радыус уражання, пакуль акно змен не зачынілася.
- Ролю вызначана як ідэнтычнасць, прамежкавы сертыфікат або якар даверу
- Серыйны нумар і адбітак запісаны, а копія экспартавана ў дазволенае месца
- Выдаленне выканана ў самым вузкім аб'ёме, які тлумачыць сімптом
- Аўтарызацыя на баку сервера адклікана, калі чалавек або прылада сышлі
- Рукапацісканне патлумачана, і адна незвязаная праграма пераправерана
- Карысная нагрузка MDM або профіль кіравання абноўлены, інакш сертыфікат вернецца
Калі сертыфікат вярнуўся пасля перазагрузкі, праца не скончана: нешта валодае ім і пераўсталёўвае яго. Знайдзіце гэтага ўладальніка перад чарговым выдаленнем, бо трэцяе выдаленне павядзе сябе дакладна як першыя два.