Реализация Java SMTP-клиента только с аутентификацией на основе сертификата/закрытого ключаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Реализация Java SMTP-клиента только с аутентификацией на основе сертификата/закрытого ключа

Сообщение 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();
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... entication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»