Sự khác biệt giữa cacerts và keystore là gì?


111

Sự khác biệt giữa hai, cacerts và keystore là gì?

Nếu tôi sử dụng định nghĩa được tìm thấy trong các liên kết, cacertskho khóa này , có vẻ như chúng là một tập hợp các chứng chỉ, nhưng trong ngữ cảnh của một hệ thống phân tán (Java). Cái nào được sử dụng để xác thực trong kết nối SSL? Cả hai hoặc chỉ một trong số họ hoặc thay thế?


3
cacerts = chứng chỉ của tổ chức phát hành chứng chỉ ?
Peter Mortensen

Câu trả lời:


138

'cacerts' là một kho tin cậy. Một cửa hàng tin cậy được sử dụng để xác thực các đồng nghiệp. Kho khóa được sử dụng để xác thực chính bạn.


Xin chào EJP, cảm ơn vì những câu trả lời, tôi đã trích dẫn điều đó trước khi tôi đọc bất kỳ câu trả lời nào của bạn;) Vì vậy, chỉ cần làm rõ nếu tôi tóm tắt câu trả lời của bạn trong Francis và Pangea. Cacerts được sử dụng để xác thực các máy khách yêu cầu quyền truy cập hoặc kết nối và đối với kho khóa, tôi không hiểu tại sao bạn muốn tự xác thực. :)
dimas

19
Đọc lại những gì tôi đã viết. (1) Một kho tin cậy được sử dụng để xác thực các đồng nghiệp. Nếu bạn là khách hàng, máy chủ là máy chủ ngang hàng; nếu bạn là máy chủ, ngược lại. (2) Nếu bạn là máy chủ hoặc nếu bạn là máy khách và máy chủ yêu cầu xác thực máy khách, bạn phải xác thực chính mình với máy ngang hàng, vì vậy bạn cần chứng chỉ và khóa riêng của riêng mình, có trong kho khóa. (Gây nhầm lẫn, định dạng tập tin tương tự được sử dụng cho cả hai và nó được gọi là một tập tin keystore.)
Marquis của Lorne

OK, nhưng chỉ là một câu hỏi tiếp theo. Cacerts của tôi chứa tất cả các chứng chỉ được lưu trữ trong kho khóa và hơn thế nữa. Mặc dù một số chứng chỉ bao gồm chứng chỉ riêng tư của ứng dụng của tôi có bí danh khác nhau nhưng chúng có cùng chữ ký điện tử. Vì vậy, lý tưởng nhất là tôi có thể sử dụng cacerts của mình nếu tôi kết nối với máy chủ và yêu cầu xác thực?
dimas

Tôi không hiểu phần nào về 'các bí danh khác nhau'. Khác với cái gì? Câu hỏi cuối cùng của bạn có thể trả lời được bằng thử nghiệm.
Marquis of Lorne

3
@ raja777m cacertslà người bạn tin tưởng. Tôi không thấy có lý do gì để điều đó thay đổi giữa các môi trường, trừ khi bạn phạm lỗi khi sử dụng chứng chỉ tự ký cho máy chủ thử nghiệm: một sai lầm vì điều đó có nghĩa là bạn đang sử dụng các đường dẫn mã khác nhau trong thử nghiệm và sản xuất.
Marquis of Lorne,

41

cacerts là nơi Java lưu trữ các chứng chỉ công khai của CA gốc. Java sử dụng cacerts để xác thực các máy chủ.

Kho khóa là nơi Java lưu trữ các khóa riêng của các máy khách để nó có thể chia sẻ nó với máy chủ khi máy chủ yêu cầu xác thực máy khách.


@dimas Rõ ràng là vậy, nhưng ý anh ấy thực sự là 'yêu cầu'.
Marquis of Lorne,

1
@ user207421 Tôi tin vào câu trả lời này, Ứng dụng Java đang đóng vai trò của một ứng dụng khách http và url http mà Ứng dụng Java của chúng tôi gọi là ứng dụng máy chủ. Vì vậy, KeyStore của ứng dụng Java ứng dụng khách của chúng tôi phải có cả khóa riêng tư + chứng chỉ (khóa công khai đã ký) và chỉ gửi chứng chỉ đến ứng dụng máy chủ, phải không? Và nếu ứng dụng máy chủ cũng là ứng dụng Java, nó sẽ xác minh chứng chỉ được gửi bởi ứng dụng Java ứng dụng khách của chúng tôi, bằng cách sử dụng tệp cacert của chính nó, phải không?
user104309

0

Các cảnh báo là thông tin chi tiết về các cơ quan ký tên đáng tin cậy có thể cấp chứng chỉ. Đây là điều mà hầu hết các trình duyệt có do chứng chỉ được xác định là xác thực. Keystone có các chứng chỉ liên quan đến dịch vụ của bạn để xác thực khách hàng.


-2

Kiểm tra đường dẫn JAVA_HOME của bạn. Khi hệ thống tìm kiếm tệp java.policy nằm trong JAVA_HOME/jre/lib/security. JAVA_HOME của bạn luôn phải như vậy ../JAVA/JDK.


3
cảm ơn vì đã nỗ lực nhưng bạn nên đọc và hiểu câu trả lời của EJPs.
dimas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.