Tôi có một máy chủ StrongSwan charon trên Ubuntu 18.04. Tôi kết nối với máy chủ này bằng ứng dụng khách StrongSwan charon-cmd từ một máy Ubuntu Linux khác.
Lệnh tôi sử dụng từ máy khách để kết nối với máy chủ là:
charon-cmd --cert ./GoDaddyCA1.crt --cert GoDaddyCA2.crt --host xxx.example.com --identity myusername
Nó hoạt động rất tốt, nhưng tôi không hiểu tại sao tôi cần hai tùy chọn "--cert" trong dòng lệnh để tin cậy cả hai chứng chỉ CA của GoDaddy trong chuỗi.
Chứng chỉ cá nhân của tôi được cung cấp bởi máy chủ StrongSwan và quyền hạn của nó là GoDaddyCA1.crt. Chứng chỉ GoDaddyCA1.crt có thẩm quyền của chứng chỉ GoDaddyCA2.crt. GoDaddyCA2.crt là chứng chỉ gốc tự ký.
Vì vậy, chuỗi thẩm quyền là:
MyPersonalCert.crt -> GoDaddyCA1.crt -> GoDaddyCA2.crt
Ý nghĩa của tùy chọn dòng lệnh charon-cmd "--cert" là tuyên bố rằng "đây là chứng chỉ mà tôi tin tưởng". Vì vậy, tôi cho rằng bằng cách tin tưởng GoDaddyCA1.crt, thì chứng chỉ cá nhân của tôi cũng sẽ được tin cậy.
Nhưng điều đó không đủ tốt cho charon-cmd. Ứng dụng khách charon-cmd yêu cầu tôi chỉ định "--cert" để tin tưởng hoàn toàn vào chứng chỉ tự ký. Nhưng điều này có vẻ thừa. Nếu tôi tin tưởng vào chứng chỉ CA trung gian, thì rõ ràng tôi cũng phải tin tưởng vào chứng chỉ CA có thẩm quyền, phải không?
Đây có phải là một lỗi hoặc một tính năng? Nếu đó là một tính năng, nó mang lại lợi ích gì?