Есть приложение на java, есть файл file.p12(пароль тоже есть) и сервер(linux без прав администратора), на котором это приложение надо развернуть. Можете подсказать, что и где нужно сделать, чтобы рабочее уже приложение(без ssl) вновь заработало, уже с использованием ssl? Увы, код вставить не могу но смысл приложения в том, что оно вешается на порт и слушает его. Часть перепечатала:
private ServerSocket ss;
private int port;
ExecutorService ex = Executors.newFixedThreadPool(poolSize); ss= new ServerSocket(port);
ex.execute(new Processor(ss.accept()));
Можно так
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault();
ServerSocket ssocket = ssocketFactory.createServerSocket(port);
Socket socket = ssocket.accept();
Можно более тонко подстроить. Например так
SSLContext sslContext = SSLContext.getInstance("TLS");
SSLServerSocketFactory ssf = sslContext.getServerSocketFactory();
SSLServerSocket ss = (SSLServerSocket) ssf.createServerSocket(port);
ss.setEnabledProtocols(new String[]{ "TLSv1", "SSLv3"});
ss.setEnabledCipherSuites(new String[]{});
ss.setNeedClientAuth(false);
ss.accept();
У вас должны быть более подробные спецификации, чтобы понять как сделать настроки и сервер сокет.
UPD1: Да, забыл как подтягивать сертификат. Вот один из примеров интернета:
char[] keyPassword = "P@ssw0rd!".toCharArray();
FileInputStream keyFile = new FileInputStream("ssl.p12");
// init keystore
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(keyFile, keyPassword);
// init KeyManagerFactory
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keyPassword);
// init KeyManager
KeyManager keyManagers[] = keyManagerFactory.getKeyManagers();
// init the SSL context
SSLContext sslContext = SSLContext.getDefault();
sslContext.init(keyManagers, null, new SecureRandom());
// get the socket factory
SSLServerSocketFactory socketFactory = sslContext.getServerSocketFactory();
// and finally, get the socket
ServerSocket serverSocket = socketFactory.createServerSocket(443);
Не очень уверен что последний код очень рабочий, но идею, думаю, я подал для поиска правильного решения.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники