Điện thoại từ chối kết nối và in ra No trusted RSA public key found for vpn.example.net, trong khi cùng chứng thư cổng đó hoạt động từ một máy tính xách tay trên cùng mạng. Bước đi hấp dẫn là cấp lại chứng thư. Trước khi làm vậy, hãy xác định bạn thuộc lỗi nào trong ba lỗi, vì chỉ một trong số đó liên quan đến nội dung chứng thư. Thông báo bao gồm chuỗi không đầy đủ, danh tính không khớp và khóa hoặc chữ ký không được hỗ trợ, và mỗi lỗi có cách sửa khác nhau.

Ba lỗi đằng sau một thông báo

Android xây dựng chuỗi từ chứng thư cổng đến CA được chọn trong hồ sơ VPN, sau đó so sánh tên máy chủ với hồ sơ. Thông báo cho biết kết quả, không phải giai đoạn. Lỗi tin cậy nghĩa là không thể hoàn tất chuỗi từ các chứng thư được gửi trong trao đổi; lỗi danh tính nghĩa là chuỗi đã được xác thực nhưng tên không khớp; lỗi thuật toán nghĩa là thiết bị hoặc hồ sơ không chấp nhận loại khóa hoặc chữ ký.

What you seeWhat it points toFirst move
Chain stops after the leaf in the daemon logintermediate not loaded or not sentload the intermediate as CA material
Chain validates, name differs from the profileidentity mismatchfix the profile name or the certificate SAN
Chain validates, handshake still failskey or signature not acceptedcompare key type against the device

Hãy quyết định dựa trên bằng chứng thay vì thử sửa lần lượt. Một lần thử ở mức nhật ký 2 với daemon cho biết bạn đang ở hàng nào, và tốn ít hơn việc cấp lại một chứng thư chưa bao giờ sai.

Quyết định trước: toàn bộ chuỗi đã đến chưa?

strongSwan gửi chứng thư được cấu hình cho kết nối đó, còn chứng thư trung gian là thông tin xác thực riêng. Chúng phải được nạp như chứng thư CA trước khi daemon có thể đặt chúng vào tải trọng, vì vậy cách bố trí trong đó chứng thư máy chủ được ký bởi chứng thư trung gian, gốc là neo tin cậy và chứng thư trung gian chỉ nằm trong thư mục build của CA tạo ra đúng lỗi này: chỉ có lá trên đường truyền, chuỗi kết thúc sớm trên điện thoại.

Kiểm tra những gì daemon giữ bằng swanctl --list-certs trên bản triển khai swanctl, hoặc ipsec listcerts với starter cũ hơn. Chứng thư trung gian phải xuất hiện dưới dạng chứng thư CA với gốc ở trên nó. Nếu thiếu, không tùy chọn máy khách nào giúp được; nếu có, chuyển sang câu hỏi tiếp theo.

Sau đó kiểm tra xem nó có được gửi hay không. Tài liệu tham chiếu swanctl.conf mô tả send_cert, mà mặc định ifasked chỉ gửi chứng thư khi đối tác đã yêu cầu; always luôn gửi. Tương đương cũ là leftsendcert=always trong ipsec.conf. Cài đặt đó kiểm soát việc gửi, không phải tính khả dụng, nên không thể bù đắp cho chứng thư trung gian mà daemon chưa bao giờ nạp.

Nếu chuỗi ngắn, hãy nạp chứng thư trung gian ở nơi daemon tìm kiếm

Đặt chứng thư trung gian vào thư mục CA chứ không phải bên cạnh lá: /etc/ipsec.d/cacerts cho cấu hình ipsec.conf, /etc/swanctl/x509ca cho swanctl, hoặc đường dẫn mà gói của bạn thay thế. Nạp lại cấu hình và liệt kê chứng thư lần nữa. Một số phiên bản cũng gửi gói chứa chuỗi bên trong tệp lá, nhưng thư mục CA là cách bố trí di động qua các phiên bản và gói.

Cũng xác minh từ phía máy khách. Điện thoại chỉ thấy những gì trao đổi mang theo, vì vậy nhật ký daemon ở mức 2 phải hiển thị chứng thư trung gian trong các chứng thư được truyền. Nếu nhật ký hiển thị nó mà điện thoại vẫn lỗi, bạn đang ở hàng khác của bảng, và tiếp tục chỉnh tệp CA sẽ không thay đổi kết quả.

Nếu chuỗi đầy đủ, hãy ngừng sửa chứng thư

Lỗi danh tính là sự không khớp giữa tên trong hồ sơ VPN và tên trong chứng thư. Android so sánh danh tính máy chủ bạn đã cấu hình với chứng thư mà nó đã xác thực, vì vậy hồ sơ trỏ đến một địa chỉ trong khi chứng thư nêu tên máy chủ, hoặc hồ sơ nêu tên máy chủ mà chứng thư không bao phủ, sẽ lỗi sau khi xác thực chuỗi thành công. Sửa bên sai, và giữ hồ sơ và chứng thư khớp nhau khi một trong hai thay đổi.

Lỗi thuật toán xuất hiện với chuỗi hợp lệ và tên khớp. Các bản phát hành Android khác nhau về loại khóa và sơ đồ chữ ký mà chúng chấp nhận, và bản thân loại hồ sơ giới hạn các tùy chọn. Nếu cổng dùng tổ hợp cũ hoặc bất thường, hãy so sánh với những gì thiết bị hỗ trợ trước khi cho rằng chứng thư bị hỏng. Nhật ký daemon sẽ cho thấy bắt tay tiến xa hơn trường hợp tin cậy, và đó là dấu hiệu chuỗi không còn là vấn đề.

Không cài chứng thư trung gian làm gốc người dùng trên điện thoại

Cài chứng thư trung gian còn thiếu làm chứng thư người dùng trên điện thoại khiến cảnh báo biến mất và thay đổi mô hình tin cậy của điện thoại đối với mọi ứng dụng chấp nhận gốc do người dùng cài. Nó cũng che giấu một lỗi phân phối sẽ ảnh hưởng đến máy khách tiếp theo, và để cổng gửi chuỗi không đầy đủ đến mọi thiết bị trong tương lai. Cách sửa bền vững là ở máy chủ, một lần, cho tất cả máy khách.

Giữ ba quyết định riêng trong bản ghi thay đổi: chứng thư nào đã được truyền, danh tính nào đã được so sánh và thuật toán nào đã được thương lượng. Một cổng luôn gửi toàn bộ chuỗi, một hồ sơ đặt tên chứng thư đúng, và một loại khóa mà đội thiết bị hỗ trợ là ba sự thật nhỏ, và chúng là toàn bộ lỗi này.

Bài viết liên quan