Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Win Server 2003 и запрос по HTTPS

v7: Win Server 2003 и запрос по HTTPS
Я
   GrayS19
 
28.10.20 - 16:25
Есть Win Server 2003 и сайт, перешедший с HTTP на HTTPS.

Есть код:
    ХТТПЗапрос  = СоздатьОбъект("Microsoft.XMLHTTP");
    Stream = СоздатьОбъект("ADODB.Stream");
    Stream.Mode = 3;
    Stream.Type = 1;
    Stream.Open();
    
    Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
    Скрипт.language="vbscript";
    Скрипт.AddObject("s", Stream);
    Скрипт.AddObject("x", ХТТПЗапрос);

    Попытка                      
        ХТТПЗапрос.Open("GET",АдресЗапроса, 0);
        ХТТПЗапрос.Send();  
        
        Скрипт.Eval("s.Write(x.responseBody)");
        Stream.SaveToFile(ИмяФайла,2);
        РезСтрока = "Получен файл  :" + СокрЛП(ИмяФайла);
    Исключение //Если не получается установить связь выдаем причину
        Сообщить(ОписаниеОшибки());
    КонецПопытки;    

Если в адресе запроса http:// - всё в порядке,
если https:/ - msxml3.dll: Системная ошибка: -2146697208

Версия msxml3.dll - MSXML 3.0 SP10
Под Win 7 всё работает, msxml3.dll - MSXML 3.0 SP11.

Сервер 2003 пока не обновляем.
   GrayS19
 
1 - 28.10.20 - 16:28
Пробовал через WinHttp.WinHttpRequest.5.1


    wHTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
    RequestTimeout = 6;
    wHTTP.Open("GET",АдресЗапроса,1);
    wHTTP.Send();
    Рез = wHTTP.WaitForResponse(RequestTimeout);
    Если Рез = -1 Тогда
        Ответ = СокрЛП(wHTTP.ResponseText());
    Сообщить(Ответ);
    КонецЕсли;    


Если в адресе запроса http:// - всё в порядке,
если https:/ -
Рез = wHTTP.WaitForResponse(RequestTimeout);
{D:\ISN\1C\_ОБРАБОТКИ\РАБОТА С HTTP.ERT(127)}: WinHttp.WinHttpRequest: Не удается установить соединение с сервером
   GrayS19
 
2 - 28.10.20 - 16:36
   trdm
 
3 - 28.10.20 - 16:54
(2) Забирай питоном - у него свой свежий протокольный качатель.
Обрабатывай 1С-ом.
   GrayS19
 
4 - 28.10.20 - 17:15
Если вместо ХТТПЗапрос  = СоздатьОбъект("Microsoft.XMLHTTP");
пробвать ХТТПЗапрос  = СоздатьОбъект("Msxml2.ServerXMLHTTP.6.0");
то падает уже с сообщением: msxml6.dll: Не удается установить соединение с сервером
   etc
 
5 - 28.10.20 - 17:20
(0) не знаю как у Microsoft.XMLHTTP, но у HTTPСоединения нужно явно указывать что это безопасное соединение.
На штатные методы переделать что мешает? Старая платформа?
   Garikk
 
6 - 28.10.20 - 17:35
(2) (4) отвечает, через ie на самом сервере они открываются так?
   Garykom
 
7 - 28.10.20 - 17:41
(0) сертификаты обновить надо на 2003 они давно протухли

и да это не совсем тривиально их обновить
   acht
 
8 - 28.10.20 - 17:46
(7) Все проще и грустней. Сайт откликается по TLSv1.2 и SSLv3. Windows 2003 умеет только в TLS 1.0. Закопайте уже стюардессу.
   trdm
 
9 - 28.10.20 - 19:15
Я с WinXP питоном забирал.
   MWWRuza
 
10 - 28.10.20 - 22:05
Вот тут почитайте: https://olegon.ru/showthread.php?t=26748
Была у меня аналогичная проблема под XP, с базой ШК от ОлегОна. Там, по ссылке, мне помогли, и все тогда заработало. Но, было это три года назад, сейчас уже не помню подробностей. А машины той, с XP-шкой, уже нет давно.
   Turku
 
11 - 28.10.20 - 23:42
(0) Win2003 не умеет в TLS1.2. Для винХП это вроде как решалось накатом последнего Апдейтпака от Симпликса. ХП по факту перестали поддерживать в 2019г. Для 2003 - хз.
   big
 
12 - 29.10.20 - 05:38
Установите OpenSSL и всё должно работать. Ещё можно попробовать пользоваться curl, т.к. есть у него хорошая опция -k, когда он небезопасно работает, наплевав на всё  )))

Конечно могут быть нюансы, но у нас такой вариант работает на Win-2003
   GrayS19
 
13 - 29.10.20 - 08:43
(6) IE с сервера по HTTP получает ответ, по HTTPS : надпись "Подключение" - и всё, белый экран без сообщений
   GrayS19
 
14 - 29.10.20 - 08:50
(8) SSL 3.0 есть, а вот TLS только 1.0
   acht
 
15 - 29.10.20 - 09:34
(14) >  SSL 3.0 есть
А разрешен?
   acht
 
16 - 29.10.20 - 09:40
(15)+ В общем, твой сайт умеет в следующее:

Cipher    Proto    Strength    Algo    Key    KeyEx

AES128-SHA    SSLv3    High    AES    128-bit    RSA
AES256-SHA    SSLv3    High    AES    256-bit    RSA
CAMELLIA128-SHA    SSLv3    High    Camellia    128-bit    RSA
CAMELLIA256-SHA    SSLv3    High    Camellia    256-bit    RSA
DHE-RSA-AES128-SHA    SSLv3    High    AES    128-bit    DH
DHE-RSA-AES256-SHA    SSLv3    High    AES    256-bit    DH
DHE-RSA-CAMELLIA128-SHA    SSLv3    High    Camellia    128-bit    DH
DHE-RSA-CAMELLIA256-SHA    SSLv3    High    Camellia    256-bit    DH
AES128-GCM-SHA256    TLSv1.2    High    AESGCM    128-bit    RSA
AES128-SHA256    TLSv1.2    High    AES    128-bit    RSA
AES256-GCM-SHA384    TLSv1.2    High    AESGCM    256-bit    RSA
AES256-SHA256    TLSv1.2    High    AES    256-bit    RSA
CAMELLIA128-SHA256    TLSv1.2    High    Camellia    128-bit    RSA
CAMELLIA256-SHA256    TLSv1.2    High    Camellia    256-bit    RSA
DHE-RSA-AES128-GCM-SHA256    TLSv1.2    High    AESGCM    128-bit    DH
DHE-RSA-AES128-SHA256    TLSv1.2    High    AES    128-bit    DH
DHE-RSA-AES256-GCM-SHA384    TLSv1.2    High    AESGCM    256-bit    DH
DHE-RSA-AES256-SHA256    TLSv1.2    High    AES    256-bit    DH
DHE-RSA-CAMELLIA128-SHA256    TLSv1.2    High    Camellia    128-bit    DH
DHE-RSA-CAMELLIA256-SHA256    TLSv1.2    High    Camellia    256-bit    DH
ECDHE-RSA-AES128-GCM-SHA256    TLSv1.2    High    AESGCM    128-bit    ECDH
ECDHE-RSA-AES128-SHA256    TLSv1.2    High    AES    128-bit    ECDH
ECDHE-RSA-AES256-GCM-SHA384    TLSv1.2    High    AESGCM    256-bit    ECDH
ECDHE-RSA-AES256-SHA384    TLSv1.2    High    AES    256-bit    ECDH

Что ты из этого можешь - смотри сам.
   GrayS19
 
17 - 30.10.20 - 11:07
В умных статьях про TLS 1.2 и Windows Server 2003 SP2 (https://www.atraining.ru/beast-move-from-ssl-to-tls/) упоминаются 2 обновления :
KB938397 и KB968730. На офподдержке таких страниц давно нет :(
http://support.microsoft.com/kb/938397 и http://support.microsoft.com/kb/968730 ведут в никуда. Может у кого есть живые ссылки на эти обновления? На одном ресурсе даже на внутренний FTP сервер видел, но естественно нерабочая.
   GrayS19
 
18 - 30.10.20 - 11:11
WindowsServer2003-KB340178-SP2-x86-RUS скачал и установил. msxml3.dll и msxml6.dll после него не поменялись - как и ожидалось толку = 0
   bmitkin
 
19 - 30.10.20 - 11:21
Сталкивался с подобной проблемой, перешёл на использование curl

Команда = "cmd /c curl -k """ + УРЛ + """ > " + ИмяФайла;
WshShell = СоздатьОбъект("WScript.Shell");
WshShell.Run(Команда, 0, -1);

и в файле ИмяФайла получаем ответ сервера.
   GrayS19
 
20 - 16.11.20 - 11:07
(19) - Большое спасибо. Самый простой из рабочих вариантов. Питон нужно установить и скрипт знать как сделать, а тут просто консольная команда.
   big
 
21 - 16.11.20 - 14:45
(20) На такой вариант ещё в (12) было рассказано. ))
   serpentt
 
22 - 16.11.20 - 15:15
(18) Не мучайтесь. Пробовали все варианты что нашли для win2003 по WinHTTP и XMLHTTP. Ничего не работает. Перешли на CURL.
   Chesnok
 
23 - 07.12.20 - 21:30
(19) Доброго дня.
Файл создается пустой. В чем может быть дело?
Команда = cmd /c curl -k "https://www.nbrb.by/Services/XmlExRates.aspx?ondate=12/07/2020"; > E:\1C\course_1.txt
   bmitkin
 
24 - 07.12.20 - 21:59
Запустите команду в консоли. Может прав доступа не хватает - она скажет.
И точка с запятой явно лишние.
   big
 
25 - 08.12.20 - 04:59
(23) Вот так попробуйте
Команда = cmd /k curl -k "https://www.nbrb.by/Services/XmlExRates.aspx?ondate=12/07/2020"; -v > E:\1C\course_1.txt
   Chesnok
 
26 - 08.12.20 - 10:32
(24) ";" нет, не знаю как в пост попала.
   NorthWind
 
27 - 08.12.20 - 10:39
Кстати, вопрос по TLS 1.0. Есть довольно много оборудования с веб-мордами, которое держит только его. Иногда веб-морды приходится выставлять в инет. На него последнее время довольно сильно ополчились, браузеры уже прекращают поддержку. В связи с этим вопрос - насколько велики риски продолжения использования таких вещей?
   NorthWind
 
28 - 08.12.20 - 10:40
Имеется в виду HTTPS + TLS 1.0
   Chesnok
 
29 - 08.12.20 - 10:44
(24) при запуске из командной строки пишет, что "curl" не является внутренней или внешней командой, ...
   NorthWind
 
30 - 08.12.20 - 10:46
(29) ясен перец. Его еще скачать на машину нужно.
 
 
   NorthWind
 
31 - 08.12.20 - 10:47
уже не помню где я качал, давно было... но, по-моему, вот здесь https://curl.se/download.html
   NorthWind
 
32 - 08.12.20 - 10:47
и если надо чтобы запускался словом curl, еще и в PATH воткнуть не забыть папку
   Chesnok
 
33 - 08.12.20 - 10:52
(30) А почему при вызове из 1С файл создается если curl нет?
   ДенисЧ
 
34 - 08.12.20 - 10:52
(33) А ты загляни в этот файлик...
   Chesnok
 
35 - 08.12.20 - 10:55
(34) Пустой файл, в чем собственно и был вопрос (23)
   NorthWind
 
36 - 08.12.20 - 11:03
(33) если вы вызываете сначала cmd, а потом запускаете curl, как написано в (25) - тогда у вас перенаправляется в файл ввод-вывод cmd, а не курла. Соответственно, и файл поэтому создается.
   NorthWind
 
37 - 08.12.20 - 11:04
* вывод, конечно, а не ввод-вывод
   big
 
38 - 08.12.20 - 11:09
ТипЗапуска = "c"; // или k

Команда = "curl.exe -k https://www.nbrb.by/Services/XmlExRates.aspx?ondate=12/07/2020 -v > E:\1C\course_1.txt";
WshShell=СоздатьОбъект("WScript.Shell");
WshShell.Run("%COMSPEC% /"+ТипЗапуска+" "+Команда, 0, 1);
   Chesnok
 
39 - 08.12.20 - 11:21
Всем спасибо, скачал curl, все заработало.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.