有一个普通的socket服务器监听端口12345;
ServerSocket s = new ServerSocket(12345);
Run Code Online (Sandbox Code Playgroud)
我想知道的是:有可能:
http请求,服务器直接处理请求,https请求,服务器将客户端套接字更改为SSLSocket?谢谢
阅读完以下内容后,我仍然坚持制作最低限度的https ://localhost 独立免安装 Web 服务器 Java 应用程序。它需要是无库的,使用 Java 8,并接受来自浏览器的连接,而无需先安装任何特殊的客户端证书。我不清楚自签名证书是否可以实现这一点,因为它只适用于“localhost”。
到目前为止,我已经使用生成了一些关键文件
openssl genrsa -aes128 -out privkey.pem 2048 # makes privkey.pem
openssl req -new -x509 -key privkey.pem # makes cert.crt
Run Code Online (Sandbox Code Playgroud)
我已经拼凑了最基本的 Kotlin 设置函数
private fun ssl():SSLServerSocketFactory {
val password = "MYPASSWORD".toCharArray()
val kmf = KeyManagerFactory.getInstance("SunX509")
val tmf = TrustManagerFactory.getInstance("SunX509")
val sslContext = SSLContext.getInstance("TLS")
// initialise the keystore
KeyStore.getInstance("JKS").let { ks->
FileInputStream("lig.keystore").use {
ks.load(it, password)
}
kmf.init(ks, password)
tmf.init(ks)
}
// …Run Code Online (Sandbox Code Playgroud)