Нам необходимо создать SMTP-клиент, который будет авторизован открытым/закрытым ключом. Мой код выглядит, как показано ниже, но сервер не видит передаваемый сертификат и отклоняет запрос. может кто-нибудь помочь мне с правильной реализацией? Я импортировал общедоступный и частный файл keystore.p12 с помощью команды openssl: openssl pkcs12 -export -out keystore.p12 -inkey Private.key -in public.crt -name "test"
Properties props = new Properties();
props.put("mail.smtp.host", "test.test.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
try {
// Load the keystore
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(this.class.getClassLoader().getResourceAsStream("keystore.p12"), "password".toCharArray());
// Create a MailSSLSocketFactory and set the keystore
MailSSLSocketFactory socketFactory = new MailSSLSocketFactory();
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, "password".toCharArray());
socketFactory.setKeyManagers(keyManagerFactory.getKeyManagers());
//socketFactory.setKeyStorePassword("password");
// Set the socket factory
props.put("mail.smtp.ssl.socketFactory", socketFactory);
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("test@test.com"));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("test1@test1.com", false));
message.setSubject("Testing Subject");
message.setText("Test Mail");
Transport.send(message);
System.out.println("Done");
} catch (Exception e) {
e.printStackTrace();
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... entication
Реализация Java SMTP-клиента только с аутентификацией на основе сертификата/закрытого ключа ⇐ JAVA
Программисты JAVA общаются здесь
1727142292
Anonymous
Нам необходимо создать SMTP-клиент, который будет авторизован открытым/закрытым ключом. Мой код выглядит, как показано ниже, но сервер не видит передаваемый сертификат и отклоняет запрос. может кто-нибудь помочь мне с правильной реализацией? Я импортировал общедоступный и частный файл keystore.p12 с помощью команды openssl: openssl pkcs12 -export -out keystore.p12 -inkey Private.key -in public.crt -name "test"
Properties props = new Properties();
props.put("mail.smtp.host", "test.test.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
try {
// Load the keystore
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(this.class.getClassLoader().getResourceAsStream("keystore.p12"), "password".toCharArray());
// Create a MailSSLSocketFactory and set the keystore
MailSSLSocketFactory socketFactory = new MailSSLSocketFactory();
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, "password".toCharArray());
socketFactory.setKeyManagers(keyManagerFactory.getKeyManagers());
//socketFactory.setKeyStorePassword("password");
// Set the socket factory
props.put("mail.smtp.ssl.socketFactory", socketFactory);
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("test@test.com"));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("test1@test1.com", false));
message.setSubject("Testing Subject");
message.setText("Test Mail");
Transport.send(message);
System.out.println("Done");
} catch (Exception e) {
e.printStackTrace();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79016739/implementing-java-smtp-client-with-only-cert-private-key-based-authentication[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия