Có vẻ như tệp PEM là một chứng chỉ ứng dụng khách để bạn sử dụng để đăng nhập vào máy chủ. Nếu đó là chứng chỉ ứng dụng khách, và có vẻ như đó là, bạn có thể sẽ cần một tệp tin chứng thực cũng để sử dụng trong việc xác thực chứng chỉ máy chủ để thiết lập kết nối.
Các chứng chỉ CA cần phải đi vào một cửa hàng tin cậy và các chứng chỉ khách hàng của bạn cần phải đi vào kho khóa. Trong Java, cả hai đều là JKS (mặc dù nó có hỗ trợ giới hạn cho PKCS12.) Có các vị trí kho khóa/tin cậy mặc định cho JRE cũng như cho mỗi người dùng. Bạn cũng có thể chỉ định các vị trí bên ngoài cho các tệp này trong mã của mình, như trong ví dụ bên dưới. Thư viện commons-ssl dường như có thể hỗ trợ PEM trực tiếp, mà không cần JKS, nhưng tôi đã không sử dụng nó.
Cụm mật khẩu mặc định cho các keystore này trong Java là "thay đổi" không có dấu ngoặc kép.
This page cho thấy bạn phải đọc PEM vào kho khóa/kho lưu trữ của bạn. Đây là another example.
Một khi bạn đã truststore và keystore của bạn thiết lập đúng cách, bạn cần phải vượt qua JSSE system properties sau để JVM của bạn:
javax.net.ssl.keyStore
javax.net.ssl.keyStoreType
javax.net.ssl.keyStorePassword
javax.net.ssl.trustStore
javax.net.ssl.trustStoreType
javax.net.ssl.trustStorePassword
Bạn có thể xác định chúng là thông số -D để JRE hoặc, như trong ví dụ dưới đây, theo chương trình.
Sau khi bạn hoàn thành, bạn sẽ có được commons-ssl example khi tạo ổ cắm. Ngoài ra, heres api Java cho SSLSocket. Heres cũng là một example mà không sử dụng bất kỳ commons apache.
Nguồn
2009-04-06 21:54:59
Trùng lặp; Tôi nghĩ rằng phiên bản khác của câu hỏi là nhiều thông tin hơn. – erickson