千家信息网

jetty配置SSL证书实现http请求

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章给大家分享的是jetty配置SSL证书实现http请求的方法。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。一 使用java 自带工具 keytool 生成证书keytoo
千家信息网最后更新 2025年01月23日jetty配置SSL证书实现http请求

这篇文章给大家分享的是jetty配置SSL证书实现http请求的方法。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

一 使用java 自带工具 keytool 生成证书

keytool -genkey -alias server -keypass 123456 -storepass 123456 -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 -dname "C=CN,ST=BJ,L=BJ,O=ca.wbq.com,OU=ca.wbq.com,CN=ca.wbq.com"

2 java程序

import org.eclipse.jetty.http.HttpVersion;import org.eclipse.jetty.server.HttpConfiguration;import org.eclipse.jetty.server.HttpConnectionFactory;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.server.ServerConnector;import org.eclipse.jetty.server.SslConnectionFactory;import org.eclipse.jetty.util.ssl.SslContextFactory;public class JeetSslTest {public static void main(String[] args) {Server server = new Server();HttpConfiguration https_config = new HttpConfiguration();https_config.setSecureScheme("https");SslContextFactory.Server sslContextFactory = new SslContextFactory.Server();sslContextFactory.setKeyStoreType("PKCS12");sslContextFactory.setKeyStorePath("e:/temp/key/keystore.p12");sslContextFactory.setTrustStorePath("e:/temp/key/keystore.p12");sslContextFactory.setKeyStorePassword("123456");sslContextFactory.setKeyManagerPassword("123456");try{ServerConnector httpsConnector = new ServerConnector(server,        new SslConnectionFactory(sslContextFactory,HttpVersion.HTTP_1_1.asString()),        new HttpConnectionFactory(https_config));   httpsConnector.setPort(8443);   server.addConnector(httpsConnector);   server.setHandler(new HelloHandler());//处理逻辑        server.start();        server.join();}catch(Exception e){e.printStackTrace();}}}


import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.eclipse.jetty.server.Request;import org.eclipse.jetty.server.handler.AbstractHandler;public class HelloHandler extends AbstractHandler{@Overridepublic void handle(String target, Request baseRequest,HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException {   System.out.println(target);  // 设置字符集,避免乱码  response.setContentType("text/html;charset=utf-8");  // 输出我们想要显示的问候语  response.getWriter().println("hello jetty"); // 表示请求处理完成  baseRequest.setHandled(true); }}

运行成功后使用浏览器访问 https://127.0.0.1:8443/ 测试

关于jetty配置SSL证书实现http请求的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0