Ứng dụng VPN của bạn đã được gỡ cài đặt, hồ sơ đã biến mất khỏi Cài đặt, nhưng đường hầm vẫn khởi động với thông tin đăng nhập cũ. Hoặc bạn xóa nó, khởi động lại và thấy nó quay về vào sáng hôm sau. Không trường hợp nào là do nút xóa bị hỏng. Hồ sơ là cấu hình; chứng chỉ là vật liệu khóa cộng với một quyết định tin cậy được ghi trong kho mà hồ sơ chỉ trỏ tới. Bạn đang giữ cái nào trong hai cái quyết định 'xóa' phải có nghĩa là gì.

Hồ sơ không phải chứng chỉ

Trong một thiết lập VPN, ba đối tượng khác nhau được gọi là 'chứng chỉ'. Danh tính ứng dụng là một chứng chỉ lá có khóa riêng, và cổng dùng nó để quyết định bạn là ai. Chứng chỉ lá của chính máy chủ và chứng chỉ trung gian của nó là thứ ứng dụng của bạn kiểm tra khi kết nối. Neo tin cậy, thường là chứng chỉ gốc hoặc CA riêng, là thứ khiến chuỗi có thể xác minh được. RFC 5280 gọi chúng là neo tin cậy, trung gian và thực thể cuối, và chuỗi chỉ hợp lệ khi mỗi mắt xích ký mắt xích bên dưới nó.

Xóa danh tính và một thiết bị mất quyền truy cập. Xóa neo và mọi ứng dụng xác minh theo kho đó mất khả năng kiểm tra bất cứ thứ gì được phát hành dưới nó, kể cả các kết nối không liên quan gì đến VPN. Sự bất đối xứng đó chính là toàn bộ rủi ro ở đây: một gốc được cài cho một cổng thường cũng là gốc ký cổng nội bộ, máy chủ thư hoặc gương gói. Hãy nhớ bạn đang giữ cái nào trong hai cái.

Quyền sở hữu quyết định việc xóa có ở lại trạng thái đã xóa hay không. Trên máy tính xách tay của bạn, chỉ bạn mới có thể đặt lại chứng chỉ. Trên thiết bị được quản lý, hồ sơ cấu hình hoặc tải trọng MDM có thể cài lại nó ở lần đăng ký tiếp theo, đó là lý do nó 'quay lại' và lý do xóa mạnh hơn không giúp ích.

Tìm xem kho nào vẫn còn giữ nó

Mọi người bắt đầu trong ứng dụng Cài đặt, nơi duy nhất không lưu chứng chỉ. Vị trí thật là các kho tin cậy của hệ điều hành, kho riêng của trình duyệt và kho riêng của ứng dụng.

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

Khớp theo số sê-ri hoặc dấu vân tay, không bao giờ theo tên hiển thị. Tên hiển thị do người phát hành chứng chỉ đặt và được dùng lại: 'Example VPN' có thể là ba chứng chỉ với ba khóa khác nhau, một cái vẫn được dùng hàng ngày.

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

Trên macOS, công cụ security cung cấp cùng các sự thật đó, và find-identity hiển thị những chứng chỉ nào vẫn còn khóa riêng đính kèm:

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

Xóa đối tượng hẹp, giữ nhà phát hành chung

Xuất trước khi xóa. Không có bản sao lưu, cách khôi phục duy nhất là phát hành lại, mà với CA riêng nghĩa là quay lại người vận hành PKI. Tệp PFX đã xuất cũng là thứ bạn bàn giao nếu việc xóa hóa ra là quyết định sai.

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

Cờ -user là thứ mọi người vô tình bỏ qua. Không có nó, certutil làm việc trên kho của máy thay vào đó, nghĩa là một shell được nâng quyền, một bộ chứng chỉ khác và bán kính ảnh hưởng giờ bao gồm mọi tài khoản khác trên máy.

Trên macOS và Linux hình dạng là như nhau: xác định, xuất, rồi xóa khỏi kho hẹp nhất giải thích triệu chứng. Xóa tệp trong /usr/local/share/ca-certificates và chạy lại update-ca-certificates là đủ; --fresh chỉ giúp khi các liên kết tượng trưng trong /etc/ssl/certs đã không nhất quán. Các hệ thống dòng RHEL giữ neo trong /etc/pki/ca-trust/source/anchors, nơi trust anchor --remove làm cùng công việc đó.

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

Trước khi xóa chứng chỉ CA, hãy kiểm tra còn gì khác chuỗi vào nó. Liệt kê các chủ thể trong gói là một kiểm tra hai dòng và trả lời liệu neo đó có làm việc khác không:

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

Xóa tệp không phải là thu hồi danh tính

Xóa cục bộ gỡ một bản sao. Khóa riêng vẫn có thể nằm trong p12 đính kèm một phiếu cũ, trong thư mục sao lưu hoặc trên máy tính xách tay thứ hai được thiết lập cùng lúc. Nếu đây là danh tính ứng dụng, cổng vẫn tiếp tục chấp nhận bất kỳ bản sao nào của khóa đó cho đến khi danh tính bị từ chối ở phía máy chủ.

Với một OpenVPN PKI, điều đó nghĩa là thu hồi chứng chỉ và bảo đảm CRL mà crl-verify tham chiếu vẫn còn hiện hành; easyrsa revoke rồi easyrsa gen-crl là phiên bản ngắn. Với cổng gắn với nhà cung cấp danh tính, hãy vô hiệu hóa người dùng hoặc gỡ thiết bị ở đó, vì chứng chỉ chỉ là một thông tin đăng nhập trong cuộc chơi. Xóa bản sao cục bộ trong khi tài khoản vẫn hoạt động trông giống dọn dẹp và không phải vậy.

Công việc sự cố có thứ tự khác: trước tiên giữ lại chứng chỉ, số sê-ri và bản ghi thu hồi, sau đó xóa và thu hồi. Những bản ghi đó không tốn gì và không đòi hỏi để lại một thông tin đăng nhập đang hoạt động.

Xác minh bằng một lần bắt tay và một ứng dụng thứ hai

Kiểm tra chuỗi từ bên ngoài, không phải từ danh sách kho bạn vừa sửa. Kho hiển thị chỉnh sửa của bạn; lần bắt tay hiển thị kết quả.

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

Mã trả về 0 nghĩa là các neo còn lại vẫn xác thực cổng. Lỗi chuỗi sau khi xóa neo là kết quả mong đợi, và nó xác nhận bạn đã chạm đúng neo đang dùng chứ không phải một bản trùng trong kho mà ứng dụng không bao giờ đọc. Nếu kết nối vẫn hoạt động, hãy tìm bản sao thứ hai, kho nhúng trong ứng dụng hoặc chứng chỉ được ghim, tất cả đều phổ biến ở các ứng dụng mang danh sách tin cậy riêng.

Sau đó kiểm tra một thứ không liên quan: một trang nội bộ, một ứng dụng thư, một gương gói. Điều đó đo bán kính ảnh hưởng một cách rẻ, trước khi cửa sổ thay đổi đóng lại.

  • Vai trò được xác định là danh tính, trung gian hoặc neo tin cậy
  • Số sê-ri và dấu vân tay được ghi lại, và bản sao được xuất đến vị trí đã phê duyệt
  • Việc xóa được thực hiện trong phạm vi hẹp nhất giải thích triệu chứng
  • Ủy quyền phía máy chủ bị thu hồi khi một người hoặc thiết bị rời đi
  • Lần bắt tay được giải thích, và một ứng dụng không liên quan được kiểm tra lại
  • Tải trọng MDM hoặc hồ sơ quản lý được cập nhật, nếu không chứng chỉ sẽ quay lại

Nếu chứng chỉ quay lại sau khi khởi động lại, công việc chưa xong: có thứ gì đó sở hữu nó và cài lại. Hãy tìm chủ sở hữu đó trước khi xóa lần nữa, vì lần xóa thứ ba sẽ hành xử đúng như hai lần đầu.

Bài viết liên quan