Я пытаюсь сделать ssl веб-сервер с Jetty, но я не хочу предоставлять сертификат сервера, если какой-либо клиент пытается подключиться. В обычных случаях любой может загрузить сертификат сервера, доверять и подключиться к серверу. Но я бы хотел установить сертификат сервера вручную на своем клиенте, чтобы быть уверенным, что только мой клиент имеет этот сертификат и может подключаться к моему серверу.
Это возможно? В интернете я не нашел ничего связанного с Пристанью.
Я играю с некоторым примером кода и моим складом доверенных сертификатов. Ничего особенного.
final Server server = new Server();
server.setHandler(new HelloWorld());
final HttpConfiguration httpConfiguration = new HttpConfiguration();
httpConfiguration.setSecureScheme("https");
httpConfiguration.setSecurePort(8085);
final ServerConnector http = new ServerConnector(server,
new HttpConnectionFactory(httpConfiguration));
http.setPort(8081);
server.addConnector(http);
final SslContextFactory sslContextFactory = new SslContextFactory("mykey.jks");
sslContextFactory.setKeyStorePassword("tester");
sslContextFactory.setNeedClientAuth(true);
final HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration);
httpsConfiguration.addCustomizer(new SecureRequestCustomizer());
final ServerConnector httpsConnector = new ServerConnector(server,
new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()),
new HttpConnectionFactory(httpsConfiguration));
httpsConnector.setPort(8085);
server.addConnector(httpsConnector);
server.start();
server.join();
Я знаю, это особый случай. Если есть лучшее решение, дайте мне знать (и нет, сеанс входа в систему для меня не вариант). Это должно быть настолько просто, насколько это возможно.