Na-uninstall ang iyong VPN client, wala na ang profile sa Mga Setting, at umaangat pa rin ang tunnel gamit ang lumang mga kredensyal. O tinatanggal mo ito, nag-reboot, at nakita mo itong muli kinaumagahan. Wala sa mga ito ang sirang delete button. Ang profile ay configuration; ang sertipiko ay key material at desisyon sa pagtitiwala na nakatala sa isang store na tinuturo lamang ng profile. Kung alin sa dalawa ang hawak mo ang nagtatakda kung ano ang dapat ibig sabihin ng 'alisin'.

Ang profile ay hindi sertipiko

Sa isang setup ng VPN, tatlong magkaibang bagay ang tinatawag na 'sertipiko'. Ang pagkakakilanlan ng client ay isang leaf certificate na may pribadong key, at ginagamit ito ng gateway upang magpasya kung sino ka. Ang sariling leaf certificate ng server at ang intermediate nito ang sinusuri ng iyong client kapag kumokonekta. Ang trust anchor, kadalasan ay root o pribadong CA certificate, ang siyang nagpapangyari sa chain na ma-verify. RFC 5280 tinatawag ang mga ito na trust anchor, intermediate at end entity, at ang chain ay may bisa lamang habang pinipirmahan ng bawat link ang link sa ibaba nito.

Tanggalin ang pagkakakilanlan at mawawalan ng access ang isang device. Tanggalin ang anchor at bawat application na nagbe-verify laban sa store na iyon ay mawawalan ng kakayahang suriin ang anumang inisyu sa ilalim nito, kasama ang mga koneksyon na walang kinalaman sa VPN. Ang kawalan ng timbang na iyon ang buong panganib dito: ang root na ininstala para sa isang gateway ay madalas ding root na pumipirma ng internal na portal, mail server o package mirror. Tandaan kung alin sa dalawa ang hawak mo.

Ang pagmamay-ari ang nagtatakda kung mananatiling tanggal ang pagtanggal. Sa laptop na pagmamay-ari mo, ikaw lang ang makakapagbalik ng sertipiko. Sa managed na device, maaaring i-install muli ito ng configuration profile o MDM payload sa susunod na check-in, kaya 'bumabalik' ito at kaya hindi nakakatulong ang mas matinding pagtanggal.

Alamin kung aling store ang mayroon pa nito

Nagsisimula ang mga tao sa Settings app, na siyang tanging lugar kung saan hindi naka-store ang sertipiko. Ang tunay na lokasyon ay ang mga trust store ng OS, ang sariling store ng browser at ang pribadong store ng application.

StoreWhat deleting from it affects
Windows CurrentUser\Myyour login session only
Windows LocalMachine Rootevery user and service on the machine
macOS login or System keychainone account, or all of them with sudo
Linux ca-certificates bundlecurl, git, Python, anything using the system bundle
Firefox cert9.dbFirefox only; it does not read the OS store

Itugma sa serial o fingerprint, hindi kailanman sa display name. Ang display name ay itinatakda ng nag-isyu ng sertipiko at ginagamit muli: ang 'Example VPN' ay maaaring tatlong sertipiko na may tatlong magkaibang key, isa ay ginagamit pa araw-araw.

certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256

Sa macOS ang security tool ay nagbibigay ng parehong mga katotohanan, at find-identity nagpapakita kung aling mga sertipiko ang may pribadong key pa:

security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client

Tanggalin ang makipot na bagay, itago ang shared issuer

I-export bago tanggalin. Kung walang backup, ang tanging pagbawi ay muling pag-isyu, na sa pribadong CA ay nangangahulugang pagbabalik sa nagpapatakbo ng PKI. Ang na-export na PFX din ang ibinibigay mo kung ang pagtanggal ay naging maling desisyon.

certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>

Ang -user flag ang madalas na nalalaktawan ng mga tao. Kung wala ito, gumagana ang certutil sa machine store sa halip, na nangangahulugang elevated shell, ibang set ng sertipiko at blast radius na kinabibilangan na ngayon ng bawat iba pang account sa machine.

Sa macOS at Linux pareho ang hugis: tukuyin, i-export, pagkatapos ay alisin mula sa pinakamakitid na store na nagpapaliwanag ng sintomas. Ang pagtanggal ng file sa ilalim ng /usr/local/share/ca-certificates at muling pagpapatakbo ng update-ca-certificates ay sapat na; --fresh nakakatulong lamang kapag ang mga symbolic link sa /etc/ssl/certs ay hindi na magkatugma. Ang mga sistemang RHEL-family ay nagtatago ng anchor sa /etc/pki/ca-trust/source/anchors, kung saan trust anchor --remove gumagawa ng parehong trabaho.

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

Bago tanggalin ang CA certificate, suriin kung ano pa ang naka-chain dito. Ang paglilista ng mga subject sa bundle ay isang check na dalawang linya at sinasagot kung may ibang trabaho ang anchor na iyon:

openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
  | openssl pkcs7 -print_certs -noout | grep -i example

Ang pagtanggal ng file ay hindi pag-revoke ng pagkakakilanlan

Ang lokal na pagtanggal ay nag-aalis ng isang kopya. Ang pribadong key ay maaaring nasa p12 na naka-attach sa lumang ticket, sa backup folder o sa pangalawang laptop na na-setup kasabay. Kung ito ay client identity, patuloy na tinatanggap ng gateway ang anumang kopya ng key na iyon hanggang sa tanggihan ang pagkakakilanlan sa server side.

Para sa OpenVPN PKI, nangangahulugan ito ng pag-revoke ng sertipiko at pagtiyak na ang CRL na tinutukoy ng crl-verify ay kasalukuyan; easyrsa revoke at pagkatapos easyrsa gen-crl ang maikling bersyon. Para sa gateway na nakatali sa identity provider, i-disable ang user o alisin ang device doon, dahil ang sertipiko ay isa lamang kredensyal sa laro. Ang pagtanggal ng lokal na kopya habang aktibo ang account ay mukhang paglilinis at hindi.

Ang incident work ay may ibang pagkakasunod-sunod: pangalagaan muna ang sertipiko, serial nito at revocation record, pagkatapos ay tanggalin at i-revoke. Ang mga record na iyon ay walang gastos at hindi nangangailangan ng pag-iiwan ng gumaganang kredensyal.

I-verify gamit ang handshake at pangalawang app

Suriin ang chain mula sa labas, hindi mula sa listahan ng store na kaka-edit mo lang. Ipinapakita ng store ang edit mo; ipinapakita ng handshake ang resulta.

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

Ang return code na 0 ay nangangahulugang ang natitirang anchor ay nagbe-validate pa ng gateway. Ang chain error pagkatapos alisin ang anchor ay inaasahang resulta, at kinukumpirma nitong natamaan mo ang anchor na ginagamit at hindi duplicate sa store na hindi kailanman binabasa ng client. Kung gumagana pa ang koneksyon, maghanap ng pangalawang kopya, store na nakapaloob sa app o naka-pin na sertipiko, lahat karaniwan sa mga client na may sariling trust list.

Pagkatapos ay subukan ang walang kaugnayan: internal na site, mail client, package mirror. Sinusukat nito nang mura ang blast radius, bago magsara ang change window.

  • Natukoy ang role bilang identity, intermediate o trust anchor
  • Naitala ang serial at fingerprint, at na-export ang kopya sa aprubadong lokasyon
  • Isinagawa ang pagtanggal sa pinakamakitid na saklaw na nagpapaliwanag ng sintomas
  • Na-revoke ang server-side authorization nang umalis ang isang tao o device
  • Naipaliwanag ang handshake, at muling nasubukan ang isang walang kaugnayang app
  • Na-update ang MDM payload o management profile, kung hindi ay babalik ang sertipiko

Kung bumalik ang sertipiko pagkatapos ng reboot, hindi pa tapos ang trabaho: may nagmamay-ari nito at nag-i-install muli. Hanapin ang may-ari na iyon bago muling tanggalin, dahil ang ikatlong pagtanggal ay kikilos nang eksakto tulad ng unang dalawa.

Kaugnay na mga artikulo