Как создать запрос на мыло, используя saaj с jks сертификатом?

У меня такое же требование. Я просто хочу напечатать объект результата в формате JSON, поэтому я использую следующий код. Надеюсь, вы что-то нашли.

// Code of Conversion
$query = "SELECT * FROM products;";
$result = mysqli_query($conn , $query);

if ($result) {
echo "</br>"."Results Found";

// Conversion of result object into JSON format
$rows = array();
while($temp = mysqli_fetch_assoc($result)) {
    $rows[] = $temp;
}
echo "</br>" . json_encode($rows);

} else {
    echo "No Results Found";
}
0
задан JavaOctopus 2 May 2019 в 14:01
поделиться

1 ответ

Я предполагаю, что вызываемая вами служба использует TLS с аутентификацией клиента. В этом случае вам нужно будет указать Java хранилище ключей и хранилище доверенных сертификатов, которые будут использоваться для идентификации себя и проверки сервера соответственно.

Вы получаете ошибку unable to find valid certification path to requested target, потому что Java не может проверить сертификат сервера (один из начальных этапов рукопожатия TLS).

По умолчанию для указания хранилища ключей и хранилища доверия используются соответствующие свойства, как указано на странице Настройка JSSE в справочном руководстве по Oracle JSSE. В частности:

javax.net.ssl.trustStore=/path/to/keystore.jks
javax.net.ssl.trustStorePassword=mypassword
javax.net.ssl.keyStore=/path/to/keystore.jks
javax.net.ssl.keyStorePassword=mypassword

Они могут быть указаны как системные свойства в командной строке (например, -Djavax.net.ssl.trustStorePassword=mypassword) или (не рекомендуется) заданы программно, например:

System.setProperty("javax.net.ssl.trustStorePassword", "mypassword");

Наконец, обратите внимание, что тип хранилища ключей по умолчанию - JKS. Если вы хотите изменить значение по умолчанию на стандарт PKCS # 12 (расширения файлов обычно .p12 или .pfx), то вам нужно установить два дополнительных свойства: javax.net.ssl.trustStoreType и javax.net.ssl.keyStoreType (необходимо значение быть PKCS12).

Если вы не уверены, чтобы проверить, находится ли ваше хранилище ключей в JKS или PKCS # 12, вы можете использовать свойство keytool, чтобы распечатать содержимое хранилища ключей и указать тип хранилища ключей, используя -storetype PKCS12, или ничего. (по умолчанию JKS)

0
ответ дан paltaie 2 May 2019 в 14:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: