сбой установления связи sslv3 (0x14077410) при подключении с сервера MarkLogic

#openssl #marklogic #sslv3

#openssl #marklogic #sslv3

Вопрос:

Я использую MarkLogic 8 и пытаюсь выполнить POST-запрос к серверу. Я могу подключиться через curl или с помощью POSTMan, однако с Markloigc это не удается. В аналогичном сообщении предполагалось, что это проблема с SNI, поскольку Markloigc использует OpenSSL. Я попытался включить эту опцию в запрос post, однако я все еще получаю ту же ошибку. Есть какие-нибудь идеи по решению этой проблемы? Смотрите фрагмент кода ниже:

 xdmp:http-post($post_url,
                        <options xmlns="xdmp:http">
                         <data>{xdmp:quote($custom_json)}</data>                              
                         <headers>
                           <content-type>application/json</content-type>
                           <Host>{$host}</Host>
                         </headers>
                         <allow-sslv3>true</allow-sslv3>
                       </options>
                        )
  

Ответ №1:

Не похоже, что вы отправляете какие-либо учетные данные. Попробуйте что-то вроде этого:

 xdmp:http-post(
    $post_url,
    <options xmlns="xdmp:http">
        <data>{xdmp:quote($custom_json)}</data>                              
        <headers>
            <content-type>application/json</content-type>
            <Host>{$host}</Host>
        </headers>
        <allow-sslv3>true</allow-sslv3>
        <authentication method="digest">
            <username>myUsername</username>
            <password>myPassword</password>
        </authentication>
    </options>
)
  

Комментарии:

1. URL-адрес публикации содержит токен, который заменяет аутентификацию. Я пробовал следующее с OpenSSL sclient и смог подключиться, когда добавил параметр -servername. Например: я НЕ МОГУ подключиться при попытке: openssl s_client -connect <ip>: 443 Я МОГУ подключиться при попытке: openssl s_client -имя_сервера <host.org > -connect <ip>: 443 Вопрос в том, как мне передать параметр -servername в MarkLogic xdmp:http-post url?

Ответ №2:

Просто чтобы обновить этот поток, я протестировал тот же код в MarkLogic 9, и он работает. Я не уверен, что это комбинация Marklogic 8 и используемой им библиотеки OpenSSL.