Версия для печати темы (https://pro1c.org.ua/index.php?s=0dff8ab4b7a483b5cdd1c5fdc93ebc0f&showtopic=42727)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ HTTPСоединение + SSL. Код состояния 500

Автор: Inkognito 15.12.17, 12:57

Необходимо настроить получение данных по защищенному соединению SSL.
Исходные данные: есть работающий ресурс (без SSL) и тестовый, на который планируется переход, который защищен SSL.

РесурсНаСервере = Строка("НекотораяСтрока");
РесурсБезSSL = "НекоторыйРесурс1"; //сейчас работаем с ним
РесурсСSSL = "НекоторыйРесурс2";  //тестовый, на который планируется переход
        
    //-------------------Без SSL
    Сообщить("-------ТЕСТ БЕЗ SSL-------");
    Соединение = Новый HTTPСоединение(НекоторыйРесурс1);
    Запрос = Новый HTTPЗапрос(РесурсНаСервере);
    HTTPОтвет = Соединение.Получить(Запрос);
    Если HTTPОтвет.КодСостояния=Число(200) Тогда
        Сообщить("ОК!");
    Иначе
        Сообщить("НЕ ОК!");
Сообщить("КодСостояния=" + HTTPОтвет.КодСостояния);
    КонецЕсли;

    //-------------------SSL
    Сообщить("-------ТЕСТ SSL-------");
    ssl = Новый ЗащищенноеСоединениеOpenSSL;
    Соединение = Новый HTTPСоединение(РесурсСSSL,,,,,,ssl);
    Запрос = Новый HTTPЗапрос(РесурсНаСервере);
    
    HTTPОтвет = Соединение.Получить(Запрос);
    Если HTTPОтвет.КодСостояния=Число(200) Тогда
        Сообщить("ОК!");
    Иначе
        Сообщить("НЕ ОК!");
        Сообщить("КодСостояния=" + HTTPОтвет.КодСостояния);
    КонецЕсли;


Результат
-------ТЕСТ БЕЗ SSL-------
ОК!
-------ТЕСТ SSL-------
НЕ ОК!
КодСостояния=500


Википедия гласит "500 Internal Server Error — любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса. Появился в HTTP/1.0."
Подскажите, куда копать?

Автор: Vofka 15.12.17, 13:08

Эта ошибка может говорить о чем угодно. У меня на этой неделе была такая же ошибка. Работало нормально, а потом хлоп и ошибка 500 в какой-то момент. В итоге интернет провайдер что-то у себя переконфигурировал и пошло нормально. Так же обратите внимание, что объект ЗащищенноеСоединениеOpenSSL может создаваться разными с пособами, с указанием разных параметров (в СП, кажется, 4 примера создания описано).

Автор: logist 15.12.17, 15:14

Цитата(Inkognito @ 15.12.17, 12:57) *
Подскажите, куда копать?

Логи вэбсервера копать

Автор: Flexy 15.12.17, 17:04

А так?

ssl = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);


Соединение = Новый HTTPСоединение(РесурсСSSL,443,,,,,ssl);

Автор: Inkognito 21.12.17, 14:59

Похоже, заработало, по крайней мере ошибок не выдает, и результат возвращает.
А как проверить, что защита и правда стала надежней? Админ со своей стороны все сделал, я со своей стороны в коде сделал.
Тестировщика у нас по SSL нет 32000000.gif Хакера приглашать, - с распиской о неразглашении? crazy.gif

Автор: logist 22.12.17, 7:10

Цитата(Inkognito @ 21.12.17, 14:59) *
Хакера приглашать, - с распиской о неразглашении?

Да. Но в целом вопрос философский. Всё зависит от ценности информации, если её действительно захотят получить - получат, и никакая ваша безопасность от этого не убережет, а если вы наращиваете безопасность потому что - на всякий случай/шоб было, то это просто утешение самих себя, и проводить какие-то тесты, как по мне, не имеет смысла.

Автор: Мичман Харитонов 17.12.19, 11:40

Новую тему не начинаю, потому что ситуация точно такая же.
Сайт переводят с HTTP на HTTPS.
Переделываю обработку обмена.
Запрос

ssl = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено);
        HTTP = Новый HTTPСоединение(Сайт,443,,,,ssl);  //подключение
        HTTPЗапрос = Новый HTTPЗапрос("cml/1c_exchange.php?type=catalog&mode=import&filename=offers.xml");
        HTTPОтвет = HTTP.Получить(HTTPЗапрос, );

При выполнении выбрасывает ошибку "Ошибка при вызове конструктора (HTTPСоединение)
HTTP = Новый HTTPСоединение(Сайт,443,,,,ssl); //подключение
по причине:
Несоответствие типов (параметр номер '6')
"
Подскажите, пожалуйста, чем ему тип не тот?

Автор: Petre 17.12.19, 12:44

Мичман Харитонов @ Today, 11:40 * ,
Еще одну запятую...

HTTP = Новый HTTPСоединение(Сайт, 443,,,,, ssl);

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua