Java-агент Domino, подключающийся к SMTP-серверу с помощью TLS1.2JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java-агент Domino, подключающийся к SMTP-серверу с помощью TLS1.2

Сообщение Anonymous »

У нас есть конкретный вариант использования, когда определенные электронные письма необходимо отправлять напрямую из Java-агента Domino (с использованием mailapi-1.6.2.jar) на удаленный SMTP-сервер, где требуется TLS1.2. В зависимости от бизнес-логики при аутентификации на удаленном сервере используются разные имена пользователей и пароли. TLS 1.0 и TLS 1.1 отключены на удаленном сервере.
Получена ошибка:
javax.mail.MessagingException: невозможно отправить команду на SMTP-хост; вложенное исключение: javax.net.ssl.SSLHandshakeException: нет подходящего протокола, возможно, не указан соответствующий набор шифров или протоколы деактивированы.
Мы использовали WireShark для подтверждения использования TLS1.2. .
Предполагая, что проблема заключается в следующем:
шифр, используемый Domino, неверен? Мы не знаем, как проверить, какой набор шифров отсутствует\пытается использовать.
Мы будем очень признательны за любые предложения или указатели, поскольку мы боремся с этим.
Заранее спасибо.
Мы попробовали следующее на сервере Domino v9 и сервере Domino v14.
Ciphers in Domino 9 Server document
RC4 encryption with 128-bit key and MD5 MAC
RC4 encryption with 128-bit key and SHA-1 MAC
Triple DES encryption with 168-bit key and SHA-1 MAC
DES encryption with 56-bit key and SHA-1 MAC
RC4 encryption with 40-bit key and MD5 MAC

Ciphers on Domino 14 server document and website
ECDHE_RSA_WITH_AES_256_GCM_SHA384 [C030]
DHE_RSA_WITH_AES_256_GCM_SHA384 [9F]
ECDHE_RSA_WITH_AES_128_GCM_SHA256 [C02F]
DHE_RSA_WITH_AES_128_GCM_SHA256 [9E]

Особые настройки Domino 9...начать
Java version:
java version "1.8.0_151"

In the notes.ini:

DISABLE_SSLV3=1
SSL_DISABLE_TLS_10=1
JavaUserOptionsFile=C:\Progra~1\IBM\Lotus\Domino\jvm\jvmoptions.txt

In the ....\IBM\Lotus\Domino\jvm\jvmoptions.txt:

https.protocols=TLSv1.2
-Dcom.ibm.jsse2.overrideDefaultTLS=true

Java-версия Domino v14:
версия openjdk «17.0.8.1» от 24 августа 2023 г.
Примечание. Сервер Domino был обновлен с версии 9, поэтому, возможно, он унаследовал некоторые наборы шифров, которые необходимо отключить?
In the java.security file we have the following disabled. It's this setting that actually forced the java agent to use TLS1.2

jdk.tls.disabledAlgorithms=SSLv3, SHA-0, SHA-1, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves

Мы создали тестовый агент (заменили хост, учетные данные и т. д. на свои):
String smtpHost = "smtp.example.com"; // Replace with your SMTP server
int smtpPort = 587; // Typically 587 for STARTTLS
String username = "your_email@example.com"; // Replace with your email
String password = "your_password"; // Replace with your password

// Recipient and email content
String toEmail = "recipient@example.com"; // Replace with recipient's email
String subject = "Test Email with TLS 1.2";
String body = "This is a test email sent using JavaMail 1.5 enforcing TLS 1.2.";

// Set email properties
Properties props = new Properties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.port", smtpPort);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true"); // Enable STARTTLS
props.put("mail.smtp.debug", "true");

// Force TLS 1.2
props.put("mail.smtp.ssl.protocols", "TLSv1.2");

// Create session
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});

session.setDebug(true);

// Create a message
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
message.setSubject(subject);
message.setText(body);

// Send email
Transport.send(message);
System.out.println("Email sent successfully with TLS 1.2!");

TLSv1.3

Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-tls1-2
Ответить

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

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

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

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

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