Я пытаюсь решить проблему с моим сервлетом Jetty, работающим через HTTPS.
Это ошибка в браузере:
Это ошибка в Curl:
Что я сделал:
Я создал свое хранилище ключей и хранилище доверенных сертификатов, как описано здесь: Как создать хранилище ключей и хранилище доверенных сертификатов, и здесь https://serverfault.com/questions/48800 ... nativename
Это мой пакетный скрипт для создания Хранилище ключей и хранилище доверенных сертификатов:
Я пытаюсь решить проблему с моим сервлетом Jetty, работающим через HTTPS. Это ошибка в браузере: [img]https://i.sstatic.net/AvBR0.png[/img]
Это ошибка в Curl: [img]https://i.sstatic.net/1svGu.png[/img]
Что я сделал: [list] [*]Я создал свое хранилище ключей и хранилище доверенных сертификатов, как описано здесь: Как создать хранилище ключей и хранилище доверенных сертификатов, и здесь https://serverfault.com/questions/488003/keytool-subjectalternativename Это мой пакетный скрипт для создания Хранилище ключей и хранилище доверенных сертификатов:
public static void main(String[] args) throws Exception { loadKeyStores();
Server server = new Server(443); ServerConnector connector = createSSLConnector(server, "P4ssW0rd", "P4ssW0rd", false); server.addConnector(connector);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.addServlet(new ServletHolder(new MetaHostServlet()),"/*"); context.setContextPath("/"); server.setHandler(context);
server.start(); server.join(); }
private static void loadKeyStores() { keyStoreFile = new File("keystore.jks"); trustStoreFile = new File("truststore.jks"); if (!keyStoreFile.exists()) { throw new RuntimeException("Key store file does not exist on path '"+keyStoreFile.getAbsolutePath()+"'"); } if (!trustStoreFile.exists()) { throw new RuntimeException("Trust store file does not exist on path '"+trustStoreFile.getAbsolutePath()+"'"); } }
SecureRequestCustomizer src = new SecureRequestCustomizer(); https_config.addCustomizer(src);
return new ServerConnector(server, sslContextFactory, new HttpConnectionFactory(https_config)); }
@Override public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { res.setContentType("text/html"); res.setStatus(HttpServletResponse.SC_OK); res.getWriter().println("Hello World!"); res.getWriter().println("session=" + req.getSession(true).getId()); } } [/code] [list] [*]Я запустил свой сервлет с Jetty и попытался подключиться к https://example.com/, и появилась указанная ошибка. [/list] Я не знаю, что не так в моем случае, возможно, поможет кто-то более опытный с Jetty и сертификатами. Большое спасибо!