Како уклонити застарели 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 ради на складишту машине, што значи подигнуту шкољку, другачији скуп сертификата и радијус штете који сада укључује све остале налоге на машини.
На 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 носивост или профил управљања ажуриран, иначе се сертификат враћа
Ако је сертификат поново ту после рестартовања, посао није завршен: нешто га поседује и поново га инсталира. Нађите тог власника пре него што поново бришете, јер ће се треће брисање понашати тачно као прва два.