我需要为Java应用程序设置一个非常轻量级的HTTPS服务器.它是我们开发实验室中使用的模拟器,用于模拟野外设备接受的HTTPS连接.因为它纯粹是一个轻量级的开发工具,并且完全不以任何方式用于生产,所以我很乐意绕过认证和尽可能多的协商.
我打算HttpsServer
在Java 6 SE中使用这个类,但我很难让它运行起来.作为测试客户端我正在使用wget
cygwin命令行(wget https://[address]:[port]
)但wget
报告它"无法建立SSL连接".
如果我运行wget
与-d
进行调试选项,它告诉我"SSL握手失败".
我花了30分钟谷歌搜索这一切似乎只是指向描述方法的相当无用的Java6文档,但实际上并没有谈论如何让讨论或讨论提供任何示例代码.
任何人都可以朝着正确的方向推动我吗?
我正在尝试使用 java 套接字创建简单的 Web 服务器,它应该支持 http 和 https。但我一次只能实现一个。我需要同时支持 http @ port 80 和 https @ port 443 的逻辑。
这是使用 sslsocket 的 HTTPS 服务器的示例代码。我们可以使用简单的ServerSocket来实现HTTP Server。
public class HttpsServer {
public static void main(String[] args) {
try {
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(new FileInputStream("/opt/p12file.p12"), "p12pass".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, "p12pass".toCharArray());
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, null);
SSLServerSocketFactory ssf = sc.getServerSocketFactory();
SSLServerSocket s = (SSLServerSocket) ssf.createServerSocket(8080);
while (true) {
SSLSocket c = (SSLSocket) s.accept();
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(c.getOutputStream()));
w.write("HTTP/1.0 …
Run Code Online (Sandbox Code Playgroud)