Có nhiều loại hơn những gì được liệt kê trong danh sách tên chuẩn mà bạn đã liên kết. Bạn có thể tìm thêm trong tài liệu của nhà cung cấp mật mã . Phổ biến nhất chắc chắn là JKS
(mặc định) và PKCS12
(đối với tệp PKCS # 12, thường có phần mở rộng .p12
hoặc đôi khi .pfx
).
JKS là phổ biến nhất nếu bạn ở trong thế giới Java. PKCS # 12 không dành riêng cho Java, đặc biệt thuận tiện khi sử dụng chứng chỉ (với khóa riêng) được sao lưu từ trình duyệt hoặc đến từ các công cụ dựa trên OpenSSL ( keytool
không thể chuyển đổi kho khóa và nhập khóa riêng của nó trước Java 6 , vì vậy bạn phải sử dụng các công cụ khác).
Nếu bạn đã có tệp PKCS # 12, việc sử dụng PKCS12
loại trực tiếp thường dễ dàng hơn . Có thể chuyển đổi định dạng, nhưng hiếm khi cần thiết nếu bạn có thể chọn loại kho khóa trực tiếp.
Trong Java 7, PKCS12
chủ yếu hữu ích như một kho khóa nhưng ít hữu ích hơn cho một kho tin cậy (xem sự khác biệt giữa kho khóa và kho tin cậy ), vì bạn không thể lưu trữ các mục nhập chứng chỉ mà không có khóa riêng. Ngược lại, JKS
không yêu cầu mỗi mục nhập là một mục nhập khóa riêng tư, vì vậy bạn có thể có các mục nhập chỉ chứa chứng chỉ, điều này hữu ích cho các cửa hàng tin cậy, nơi bạn lưu trữ danh sách chứng chỉ mà bạn tin cậy (nhưng bạn không có khóa riêng cho họ).
Điều này đã thay đổi trong Java 8, vì vậy bây giờ bạn cũng có thể có các mục nhập chỉ chứng chỉ trong PKCS12
các cửa hàng. (Bạn có thể tìm thêm thông tin chi tiết về những thay đổi này và các kế hoạch khác trong JEP 229: Tạo Kho khóa PKCS12 theo Mặc định .)
Có một số loại kho khóa khác, có lẽ ít được sử dụng hơn (tùy thuộc vào ngữ cảnh), chúng bao gồm:
PKCS11
, đối với các thư viện PKCS # 11, thường để truy cập mã thông báo mã hóa phần cứng, nhưng việc triển khai nhà cung cấp Sun cũng hỗ trợ các cửa hàng NSS (từ Mozilla) thông qua việc này.
BKS
, bằng cách sử dụng nhà cung cấp BouncyCastle (thường được sử dụng cho Android).
Windows-MY
/ Windows-ROOT
, nếu bạn muốn truy cập trực tiếp vào kho chứng chỉ Windows.
KeychainStore
, nếu bạn muốn sử dụng trực tiếp chuỗi khóa OSX.