Рейтинг:0

Где установить SSL-сертификат для запроса CURL к внешнему API

флаг kz

Это немного странная ситуация, но я надеюсь, что кто-то здесь может оказать некоторую помощь. У меня есть устаревшее приложение Java, которое взаимодействует с внешним сторонним API (онлайн-инструменты UPS). Недавно мы получили уведомление о том, что нам необходимо обновить сертификат сервера до 21 января, иначе наши транзакции больше не будут работать.

Наше приложение отправляет ssl-запросы во внешний API через curl-запрос (он ДОЛЖЕН быть curl из-за того, как это приложение разработано, это длинная история и не очень актуальная здесь). Что мне нужно знать, так это то, где мне нужно установить сертификат? У нас есть интерфейсный веб-сервер (Apache), серверная часть jboss и промежуточный сервис HAProxy. Запрос curl выполняется бэкэндом через класс groovy, выполняющий команду curl. Какой из них является внешним API, который ищет сертификат при выполнении рукопожатия ssl?

Если это поможет, вот как выглядит groovy-метод:

public String[] requestTracking(URL-адрес строки, действие строки, номер отслеживания строки, номер лицензии_доступа строки, идентификатор_пользователя строки, пароль строки) {

        Строковый запрос = """<?xml version="1.0"?>
            <AccessRequest xml:lang="en-US">
             <AccessLicenseNumber>${access_license_number}</AccessLicenseNumber>
            <UserId>${user_id}</UserId>
            <Пароль>${пароль}</Пароль>
            </AccessRequest>
            <?xml версия="1.0"?>
            <TrackRequest xml:lang="en-US">
                <Запрос>
                <Ссылка на транзакцию>
                    <CustomerContext>Мой контекст</CustomerContext>
                    <XpciVersion>1.0001</XpciVersion>
                </Ссылка на транзакцию>
                <RequestAction>Отследить</RequestAction>
                <RequestOption>${action}</RequestOption>
                </Запрос>
                <ShipmentIdentificationNumber>${trackingNumber}</ShipmentIdentificationNumber>
            </TrackRequest>
""";

        команда защиты = [
            'ш',
            '-с',
            "curl -s -w '%{http_code}' '${url}' -X POST -d '" + запрос + "'"
        ];

        def proc = command.execute();
        def outputStream = новый StringBuffer();
        def errorStream = новый StringBuffer();
        proc.waitForProcessOutput(outputStream, errorStream);
        // System.out.println("ошибка: " + errorStream.toString());
        Результат строки = outputStream.toString().trim();
        // отделяем код состояния html
        Строковый код = результат.подстрока(результат.длина() -3);
        Тело строки = результат.подстрока(0,результат.длина() -3);

        String[] output = [код, тело];
        обратный вывод;
    }

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.