Vấn đề mà nó phàn nàn là khi bạn tạo kết nối SSL, máy chủ phải xuất trình chứng chỉ hợp lệ cho ứng dụng khách. Bạn có thể viết một điểm cuối thích hợp trong Java (HTTPServerSocket sẽ làm điều đó tôi nghĩ) nhưng nó sẽ yêu cầu một số hacking về để thiết lập nó. Nó có thể dễ dàng hơn để thiết lập một máy chủ web cục bộ với bất cứ thứ gì xử lý SSL chính xác --- Apache, lighttp, bất kỳ thứ gì --- và tạo ra một cert tự ký bằng cách sử dụng các công cụ openssl.
Đã cập nhật
Đây là ví dụ từ Java Almanac. http://www.exampledepot.com/egs/javax.net.ssl/Server.html
Ổ cắm máy chủ SSL yêu cầu chứng chỉ mà nó sẽ gửi cho khách hàng để xác thực. Chứng chỉ phải được chứa trong kho khóa có vị trí phải được chỉ định rõ ràng (không có mặc định). Sau ví dụ này, chúng tôi mô tả cách tạo và chỉ định kho khóa cho ổ cắm máy chủ SSL để sử dụng.
try {
int port = 443;
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault();
ServerSocket ssocket = ssocketFactory.createServerSocket(port);
// Listen for connections
Socket socket = ssocket.accept();
// Create streams to securely send and receive data to the client
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
// Read from in and write to out...
// Close the socket
in.close();
out.close();
} catch(IOException e) {
}
Xác định keystore giấy chứng nhận sử dụng tài sản hệ thống javax.net.ssl.keyStore:
> java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456 MyServer
Nguồn
2008-12-17 02:56:01
Cảm ơn CornPuff - đó là chính xác khá nhiều mã tôi đã kết thúc bằng văn bản (mặc dù tôi đã làm nó một thời gian trước đây bây giờ). – RodeoClown