创建keystore相关资料
实践代码
封装了个函数, 方便构造出一个Connector
ServerConnector buildSslConnector(Server server, int securePort, String keyStorePath, String keyStorePassword, String keyManagerPassword) {
HttpConfiguration https_config = new HttpConfiguration();
https_config.setSecureScheme("https");
https_config.setSecurePort(securePort);
https_config.addCustomizer(new SecureRequestCustomizer());
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath(keyStorePath);
sslContextFactory.setKeyStorePassword(keyStorePassword);
sslContextFactory.setKeyManagerPassword(keyManagerPassword);
ServerConnector httpsConnector = new ServerConnector(server, new SslConnectionFactory(sslContextFactory, "http/1.1"), new HttpConnectionFactory(https_config));
httpsConnector.setPort(securePort);
return httpsConnector;
}
服务器启动代码
Server httpServer = new Server();
ServerConnector sslConnector = buildSslConnector(httpServer, 端口,
keystore文件,
keystore密码,
证书密码);
httpServer.addConnector(sslConnector);
//加入web app
try {
httpServer.start();
httpServer.join();
} catch (Exception e) {
e.printStackTrace();
}
需要注意的是, 证书的被颁发者要和域名一致, 且手动添加到可信证书中, 否则浏览器不认