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