我已经创建了一个基于Java的HTTP服务器,并且希望它向访问该服务器的浏览器提供SSL证书。我正在使用java.net.ServerSocket和java.net.Socket来管理打开的连接。
File file = new File(WEB_ROOT, parsedRequest); // generates File
int len = (int) file.length(); // determines file length
String type = getContentType(parsedRequest); // gets type
byte[] data = readFileData(file, len); // gets data
// out and dataOut are both streams constituted from OutputStreams from the java.net.Socket
out.println("HTTP/1.1 200 OK"); // headers
out.println("Server: JavaServer : 2.1");
out.println("Date: "+new Date());
out.println("Content-type: "+type);
out.println("Content-length: "+len);
out.println();
out.flush();
dataOut.write(data, 0, len); // sending data
dataOut.flush();
答案 0 :(得分:3)
浏览器不“请求”证书。如果URL的协议为https://...
,则浏览器将使用HTTPS作为应用程序协议,即HTTP + SSL / TLS。然后,服务器必须能够处理此协议。通常,HTTP和HTTPS在不同的TCP端口上提供服务,因此服务器只希望在HTTPS的端口设置上使用HTTPS。