侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

基于jetty9 编程构建嵌入式https 服务器

2022-06-27 星期一 / 0 评论 / 0 点赞 / 77 阅读 / 2467 字

第一步,命令行下使用jdk的keytool工具生成keystore keytool-keystorekeystore-aliasjetty-genkey-keyalgRSA 第二步,生成证书 key

第一步,命令行下使用jdk的keytool工具生成keystore

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

 

第二步,生成证书

keytool -export -alias jetty -file jetty.crt -keystore keystore

 

第三步,生成OBA文件,这里的yoursslpassword是第一步填写的密码

java -cp jetty-all-9.0.5.v20130815.jar org.eclipse.jetty.util.security.Password yoursslpassword

 

第四步,编码实现https服务器

Server server = new Server();HttpConfiguration https_config = new HttpConfiguration();https_config.setSecureScheme("https");https_config.setSecurePort(8443);https_config.setOutputBufferSize(32768);https_config.addCustomizer(new SecureRequestCustomizer());SslContextFactory sslContextFactory = new SslContextFactory();sslContextFactory.setKeyStorePath("keystore");sslContextFactory.setKeyStorePassword("OBF:1xtb1uo71wg41y0q1y7z1y101wfu1unr1xu7");sslContextFactory.setKeyManagerPassword("OBF:1xtb1uo71wg41y0q1y7z1y101wfu1unr1xu7");ServerConnector httpsConnector = new ServerConnector(server,        new SslConnectionFactory(sslContextFactory,"http/1.1"),        new HttpConnectionFactory(https_config));httpsConnector.setPort(8443);httpsConnector.setIdleTimeout(500000);server.addConnector(httpsConnector);WebAppContext webApp = new WebAppContext();webApp = new WebAppContext();webApp.setContextPath("/myapp");webApp.setResourceBase("WebRoot");webApp.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false");webApp.setInitParameter("org.eclipse.jetty.servlet.Default.useFileMappedBuffer", "false");server.setHandler(webApp);try {	server.start();	server.join();} catch (Exception e) {	// TODO Auto-generated catch block	e.printStackTrace();}

 


第五步,通过浏览器访问 https://localhost:8443/myapp访问应用。浏览器会提示证书不可信任,是否继续访问,点是即可。
 

基于jetty9实现。

广告 广告

评论区