strongSwan: loại khóa, bộ nạp và backend sai
PEM là một vùng chứa, không phải loại khóa. Hãy so sánh khóa công khai của chứng chỉ với khóa riêng, rồi nạp nó qua backend thực sự đọc nó.
Phần mở rộng tệp không xác định thuật toán khóa, và một phong bì .pem có thể chứa vật liệu RSA hoặc ECDSA. PEM mô tả cách các byte được gói, trong khi RSA và ECDSA là tên các thuật toán khác nhau, và tệp PKCS12 lại là thứ thứ ba. strongSwan nạp thông tin đăng nhập qua plugin và một backend cấu hình, nên chứng chỉ có thể xuất hiện trong danh sách trong khi khóa riêng không bao giờ trở nên dùng được. Hãy tách các lớp đó trước khi sửa bất kỳ bí mật nào.
Mã hóa, thuật toán và đóng gói là ba lớp
Tệp khóa có mã hóa, thuật toán và thường có vùng chứa. PEM là phong bì base64 quen thuộc; DER là bản nhị phân của nó; PKCS12 gộp chứng chỉ với khóa và chuỗi của nó. Tệp chuỗi chứng chỉ là một vùng chứa khác, và thường không chứa khóa riêng nào cả. Không nhãn nào trong số đó cho biết vật liệu bên trong là RSA hay ECDSA.
Đọc thuật toán từ chính đối tượng. Tên tiếp thị của nhà cung cấp hay phần mở rộng tệp không phải bằng chứng, vì cùng một nhà phát hành có thể cấp các loại khóa khác nhau.
So sánh khóa công khai trước khi đổ lỗi cho bộ nạp
Một chứng chỉ nạp được chứng minh chứng chỉ đã được phân tích, không phải khóa riêng của nó có mặt hay dùng được. Xuất khóa công khai từ chứng chỉ và từ khóa riêng được đề xuất, rồi so sánh hai bản băm. Nếu bất kỳ trích xuất nào thất bại, hãy dừng lại, vì bản băm của đầu ra rỗng không chứng minh gì. Các bản băm khớp nhau chứng minh cặp này thuộc về nhau, và không gì hơn về việc chứng chỉ có phù hợp với công việc hay không.
openssl x509 -in server.crt -pubkey -noout |
openssl pkey -pubin -outform DER |
openssl dgst -sha256
openssl pkey -in server-key.pem -pubout -outform DER |
openssl dgst -sha256
Lệnh thứ hai chạm vào vật liệu riêng trên máy của bạn nhưng chỉ xuất ra nửa công khai. Hãy giữ như vậy, và đừng bao giờ dán khóa riêng vào phiếu. Nếu khóa được mã hóa, hãy để công cụ được hỗ trợ hỏi cụm mật khẩu thay vì đặt nó trên dòng lệnh nơi danh sách tiến trình có thể phơi bày nó.
ipsec.secrets cũ hoặc thông tin đăng nhập swanctl
strongSwan có hai đường thông tin đăng nhập thường dùng. Ngăn xếp starter cũ đọc các mục dành riêng cho loại từ ipsec.secrets, và mỗi mục phải nêu đúng loại cho vật liệu. Ngăn xếp swanctl và vici nạp khóa từ thư mục thông tin đăng nhập của riêng nó qua cấu hình của riêng nó. Sửa tệp mà backend đang chạy không đọc thì không thay đổi gì.
: ECDSA "/etc/ipsec.d/private/server-key.pem"
Tìm ra backend nào thực sự đang chạy, rồi đặt khóa ở nơi backend đó nhìn. hướng dẫn cũ strongSwan 5.9 định nghĩa các mục bí mật dành riêng cho loại, và đây không phải tài liệu swanctl. Trộn hai thứ tạo ra một daemon bỏ qua tệp mà quản trị viên tin là có thẩm quyền. Nạp lại mà không báo lỗi chỉ có nghĩa cấu hình đã được phân tích.
Đọc sự kiện nạp và kết quả xác thực
Sau khi nạp lại có kiểm soát, đọc đầu ra nạp của chính daemon cho khóa cụ thể. Một chứng chỉ được liệt kê trong bản kết xuất trạng thái không cho thấy khóa riêng đã được ghép với nó.
Nếu máy khách vẫn thất bại, hãy giữ sự kiện máy chủ và lỗi máy khách tách biệt. Kiểm tra chuỗi, khớp danh tính và tương thích phương thức là những câu hỏi về sau với bằng chứng riêng. Ghi lại kết quả với đường dẫn khóa chính xác và bản băm bạn đã so sánh, vì nếu không ca làm việc tiếp theo sẽ lặp lại cùng lần nạp lại. Thay CA không phải phản ứng đầu tiên với sự không khớp của bộ nạp.