| 
    
        
     
     | 
    
  | 
v7: Win Server 2003 и запрос по HTTPS | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        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 пока не обновляем.  | 
|||
| 
    1
    
        GrayS19    
     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: Не удается установить соединение с сервером  | 
|||
| 
    2
    
        GrayS19    
     28.10.20 
            ✎
    16:36 
 | 
         
        Сайт отвечает по обеим протоколам:
 
        http://www.nbrb.by/Services/XmlExRates.aspx?ondate=10/28/2020 и https://www.nbrb.by/Services/XmlExRates.aspx?ondate=10/28/2020  | 
|||
| 
    3
    
        trdm    
     28.10.20 
            ✎
    16:54 
 | 
         
        (2) Забирай питоном - у него свой свежий протокольный качатель.
 
        Обрабатывай 1С-ом.  | 
|||
| 
    4
    
        GrayS19    
     28.10.20 
            ✎
    17:15 
 | 
         
        Если вместо ХТТПЗапрос  = СоздатьОбъект("Microsoft.XMLHTTP");
 
        пробвать ХТТПЗапрос = СоздатьОбъект("Msxml2.ServerXMLHTTP.6.0"); то падает уже с сообщением: msxml6.dll: Не удается установить соединение с сервером  | 
|||
| 
    5
    
        etc    
     28.10.20 
            ✎
    17:20 
 | 
         
        (0) не знаю как у Microsoft.XMLHTTP, но у HTTPСоединения нужно явно указывать что это безопасное соединение.
 
        На штатные методы переделать что мешает? Старая платформа?  | 
|||
| 
    6
    
        Garikk    
     28.10.20 
            ✎
    17:35 
 | 
         
        (2) (4) отвечает, через ie на самом сервере они открываются так?     
         | 
|||
| 
    7
    
        Garykom    
     гуру 
    28.10.20 
            ✎
    17:41 
 | 
         
        (0) сертификаты обновить надо на 2003 они давно протухли
 
        и да это не совсем тривиально их обновить  | 
|||
| 
    8
    
        acht    
     28.10.20 
            ✎
    17:46 
 | 
         
        (7) Все проще и грустней. Сайт откликается по TLSv1.2 и SSLv3. Windows 2003 умеет только в TLS 1.0. Закопайте уже стюардессу.     
         | 
|||
| 
    9
    
        trdm    
     28.10.20 
            ✎
    19:15 
 | 
         
        Я с WinXP питоном забирал.     
         | 
|||
| 
    10
    
        MWWRuza    
     гуру 
    28.10.20 
            ✎
    22:05 
 | 
         
        Вот тут почитайте: https://olegon.ru/showthread.php?t=26748
 
        Была у меня аналогичная проблема под XP, с базой ШК от ОлегОна. Там, по ссылке, мне помогли, и все тогда заработало. Но, было это три года назад, сейчас уже не помню подробностей. А машины той, с XP-шкой, уже нет давно.  | 
|||
| 
    11
    
        Turku    
     28.10.20 
            ✎
    23:42 
 | 
         
        (0) Win2003 не умеет в TLS1.2. Для винХП это вроде как решалось накатом последнего Апдейтпака от Симпликса. ХП по факту перестали поддерживать в 2019г. Для 2003 - хз.     
         | 
|||
| 
    12
    
        big    
     29.10.20 
            ✎
    05:38 
 | 
         
        Установите OpenSSL и всё должно работать. Ещё можно попробовать пользоваться curl, т.к. есть у него хорошая опция -k, когда он небезопасно работает, наплевав на всё  )))
 
        Конечно могут быть нюансы, но у нас такой вариант работает на Win-2003  | 
|||
| 
    13
    
        GrayS19    
     29.10.20 
            ✎
    08:43 
 | 
         
        (6) IE с сервера по HTTP получает ответ, по HTTPS : надпись "Подключение" - и всё, белый экран без сообщений     
         | 
|||
| 
    14
    
        GrayS19    
     29.10.20 
            ✎
    08:50 
 | 
         
        (8) SSL 3.0 есть, а вот TLS только 1.0     
         | 
|||
| 
    15
    
        acht    
     29.10.20 
            ✎
    09:34 
 | 
         
        (14) >  SSL 3.0 есть
 
        А разрешен?  | 
|||
| 
    16
    
        acht    
     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 Что ты из этого можешь - смотри сам.  | 
|||
| 
    17
    
        GrayS19    
     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 сервер видел, но естественно нерабочая.  | 
|||
| 
    18
    
        GrayS19    
     30.10.20 
            ✎
    11:11 
 | 
         
        WindowsServer2003-KB340178-SP2-x86-RUS скачал и установил. msxml3.dll и msxml6.dll после него не поменялись - как и ожидалось толку = 0     
         | 
|||
| 
    19
    
        bmitkin    
     30.10.20 
            ✎
    11:21 
 | 
         
        Сталкивался с подобной проблемой, перешёл на использование curl
 
        Команда = "cmd /c curl -k """ + УРЛ + """ > " + ИмяФайла; WshShell = СоздатьОбъект("WScript.Shell"); WshShell.Run(Команда, 0, -1); и в файле ИмяФайла получаем ответ сервера.  | 
|||
| 
    20
    
        GrayS19    
     16.11.20 
            ✎
    11:07 
 | 
         
        (19) - Большое спасибо. Самый простой из рабочих вариантов. Питон нужно установить и скрипт знать как сделать, а тут просто консольная команда.     
         | 
|||
| 
    21
    
        big    
     16.11.20 
            ✎
    14:45 
 | 
         
        (20) На такой вариант ещё в (12) было рассказано. ))     
         | 
|||
| 
    22
    
        serpentt    
     16.11.20 
            ✎
    15:15 
 | 
         
        (18) Не мучайтесь. Пробовали все варианты что нашли для win2003 по WinHTTP и XMLHTTP. Ничего не работает. Перешли на CURL.     
         | 
|||
| 
    23
    
        Chesnok    
     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  | 
|||
| 
    24
    
        bmitkin    
     07.12.20 
            ✎
    21:59 
 | 
         
        Запустите команду в консоли. Может прав доступа не хватает - она скажет.
 
        И точка с запятой явно лишние.  | 
|||
| 
    25
    
        big    
     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  | 
|||
| 
    26
    
        Chesnok    
     08.12.20 
            ✎
    10:32 
 | 
         
        (24) ";" нет, не знаю как в пост попала.     
         | 
|||
| 
    27
    
        NorthWind    
     08.12.20 
            ✎
    10:39 
 | 
         
        Кстати, вопрос по TLS 1.0. Есть довольно много оборудования с веб-мордами, которое держит только его. Иногда веб-морды приходится выставлять в инет. На него последнее время довольно сильно ополчились, браузеры уже прекращают поддержку. В связи с этим вопрос - насколько велики риски продолжения использования таких вещей?     
         | 
|||
| 
    28
    
        NorthWind    
     08.12.20 
            ✎
    10:40 
 | 
         
        Имеется в виду HTTPS + TLS 1.0     
         | 
|||
| 
    29
    
        Chesnok    
     08.12.20 
            ✎
    10:44 
 | 
         
        (24) при запуске из командной строки пишет, что "curl" не является внутренней или внешней командой, ...     
         | 
|||
| 
    30
    
        NorthWind    
     08.12.20 
            ✎
    10:46 
 | 
         
        (29) ясен перец. Его еще скачать на машину нужно.     
         | 
|||
| 
    31
    
        NorthWind    
     08.12.20 
            ✎
    10:47 
 | 
         
        уже не помню где я качал, давно было... но, по-моему, вот здесь https://curl.se/download.html     
         | 
|||
| 
    32
    
        NorthWind    
     08.12.20 
            ✎
    10:47 
 | 
         
        и если надо чтобы запускался словом curl, еще и в PATH воткнуть не забыть папку     
         | 
|||
| 
    33
    
        Chesnok    
     08.12.20 
            ✎
    10:52 
 | 
         
        (30) А почему при вызове из 1С файл создается если curl нет?     
         | 
|||
| 
    34
    
        ДенисЧ    
     08.12.20 
            ✎
    10:52 
 | 
         
        (33) А ты загляни в этот файлик...     
         | 
|||
| 
    35
    
        Chesnok    
     08.12.20 
            ✎
    10:55 
 | 
         
        (34) Пустой файл, в чем собственно и был вопрос (23)     
         | 
|||
| 
    36
    
        NorthWind    
     08.12.20 
            ✎
    11:03 
 | 
         
        (33) если вы вызываете сначала cmd, а потом запускаете curl, как написано в (25) - тогда у вас перенаправляется в файл ввод-вывод cmd, а не курла. Соответственно, и файл поэтому создается.     
         | 
|||
| 
    37
    
        NorthWind    
     08.12.20 
            ✎
    11:04 
 | 
         
        * вывод, конечно, а не ввод-вывод     
         | 
|||
| 
    38
    
        big    
     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);  | 
|||
| 
    39
    
        Chesnok    
     08.12.20 
            ✎
    11:21 
 | 
         
        Всем спасибо, скачал curl, все заработало.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |