java - 使用 Keytool 的 Java HTTPS 服务器
问题描述
我正在使用以下内容为安全网站初始化 HTTPS 驱动的服务器。密钥库命令如下:
keytool -genkey -keyalg RSA -alias mykey -keystore keystore.jks -keypass 密码 -storepass 密码 -validity 365 -keysize 2048
运行代码后,当我尝试加载我的网站并出现黄色屏幕时,我收到一条 bad_certificate 错误消息。我究竟做错了什么?
String path = "C:\\Users\\Administrator\\Documents\\NetBeansProjects\\SSLTest5";
String file = path + "\\" + "keystore.jks";
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(new FileInputStream(file),"password".toCharArray());
// Create key manager
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
keyManagerFactory.init(keyStore, "password".toCharArray());
KeyManager[] km = keyManagerFactory.getKeyManagers();
// Create trust manager
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("SunX509");
trustManagerFactory.init(keyStore);
TrustManager[] tm = trustManagerFactory.getTrustManagers();
// Initialize SSLContext
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(km, tm, null);
SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory();
SSLServerSocket sslServerSocket = (SSLServerSocket) sslServerSocketFactory.createServerSocket(443);
System.out.println("Waiting for client...");
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
HandleAccept(sslSocket);
解决方案
推荐阅读
- mongodb - 无法将 mongodb 与 GoLang 连接
- typescript - 只读类型的无效分配
- jquery - 使用jquery的height()方法获取div的高度显示:无
- python - PyCharm 在创建新项目时总是出现此错误,并且项目缺少解释器(虚拟环境)
- r - 根据出现的圆括号拆分列
- r - Ggplot条形图:如何在y轴上显示百分比
- python - 已安装 pip 驱动程序但未找到模块
- python - Apache 403 通过 HTML5 视频播放器加载视频
- php - codeigniter 中的数组
- jquery - 未捕获的 ReferenceError:在 mvc 中使用 bundleconfig 时未定义 jQuery