Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Получить файл через защищенное соединение, используя HTTPСоединение (http://forums.kuban.ru/f1040/poluchit-_fajl_cherez_zashishennoe_soedinenie_ispol-zuya_httpsoedinenie-1745412.html)

Uho 27.10.2011 12:14

Получить файл через защищенное соединение, используя HTTPСоединение
 
есть ссылка

[url]https://agents.vladavia.ru/oneNet/NetStorage/Home@VLADAIR/Ticket%20Reports/TKT_XF_20110826.XML.xls[/url]

при открытии ее в браузере, появляется окно для ввода логина/пароля, после ввода которых файл успешно скачивается.

пишу:

Попытка
HTTP = Новый HTTPСоединение("https://agents.vladavia.ru",,Логин,Пароль,,Истина);
HTTP.Получить("/oneNet/NetStorage/Home@VLADAIR/Ticket%20Reports/TKT_XF_20110826.XML.xls","C:\temp.xls");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

выдается ошибка:
Ошибка при вызове метода контекста (Получить): Ошибка работы с Интернет: Couldn't resolve host name

что я делаю не так?

Uho 27.10.2011 12:45

сделал так:

HTTP = Новый HTTPСоединение("agents.vladavia.ru",,Логин,Пароль,,Истина);
HTTP.Получить("/oneNet/NetStorage/Home@VLADAIR/Ticket%20Reports/TKT_XF_20110826.XML.xls","C:\temp.xls");

теперь ошибка следующая:

Peer certificate cannot be authenticated with known CA certificates

Uho 27.10.2011 12:48

хм... вот, похоже, решение:
[url]http://infostart.ru:8080/public/79494/[/url]

VZ 27.10.2011 12:51

С кодировкой логина/пароля не игрался?

Uho 27.10.2011 13:12

4-VZ > нет, но там действительно с сертификатом проблемы (недействителен)

ЗЫ. решение из (3) не помогло (((

VZ 27.10.2011 13:26

5-Uho > Читаю сабж внимательно: "[em]при открытии ее в браузере, появляется окно для ввода логина/пароля, после ввода которых файл успешно скачивается[/em]". Про сертификат - ни слова. Скачивается, собак такой.
Вот и подумал: а чегой-то при установке через 1С пароль/логин не хавается? Сервер же не знает способа подачи этих самых логина/пароля...
Нет?

Uho 27.10.2011 13:45

6-VZ > зы, я забыл, что IE при первом открытии ругнулся на сертификат, но пропустил.
А когда я дошел таки до (2) - вспомнилось и про сертификат

VZ 27.10.2011 13:58

7-Uho > Понял. Значит, не кодировка.

Uho 27.10.2011 14:05

похоже ошибочный сертификат не обойти (((

VZ 27.10.2011 14:28

9-Uho > Рецепт, что в комментарии по ссыле в (3), пробовал?

Uho 27.10.2011 14:41

10-VZ > попробовал, но видимо, все это работает только для действительных сертификатов (что в принципе логично)

Uho 27.10.2011 16:28

а если отказаться от HTTPСоединение, каким способом посоветуете получать программно файлы?

roma n 27.10.2011 17:02

XMLHttpRequest
но вот поможет ли? 1це, скорее всего, его и использует...

МимохожийОднако 27.10.2011 17:05

По ссылке в (3)предлагается добавить в файл cacert.pem сертификат сайта. Как добавлял? Недавно с похожей задачкой столкнулся. Только для получения файла *.csv

Uho 27.10.2011 17:13

13-roma n > покопаю в эту сторону
14-МимохожийОднако > именно так, как там написано, поэтому склоняюсь к (11)

МимохожийОднако 27.10.2011 17:51

(15)Я получил сертификат. А вот как вставить в файл. Просто копированием? У меня тоже не получилось. Отпишись, если получится по (13)

Uho 28.10.2011 09:43

16-МимохожийОднако > да, просто копированием

следующая команда команда экспортирует сертификат в текстовый формат PEM:

openssl x509 -inform der -in D:\mycert.cer -out D:\textcert.pem -text -fingerprint -md5
[em]
Само собой, Вы должны изменить пути входящего и исходящего файла. Исходящий файл может не существовать. После выполнения команды на экране Вы увидите MD5 Fingerprint. Скопируйте его - с этой строки начинайте добавление своего сертификата в файл cacert.pem[/em]

Uho 28.10.2011 09:59

16-МимохожийОднако >
вот так работает, но ругается на сертификат, сволочь (выдает пару предупреждений)

x = Новый ComОбъект("Microsoft.XMLHTTP");
x.Open("GET", "https://agents.vladavia.ru/oneNet/NetStorage/Home@VLADAIR/Ticket%20Reports/TKT_XF_20110826.XML.xls",0,логин,пароль);
x.Send();
s = Новый ComОбъект("ADODB.Stream");
s.Mode = 3;
s.Type = 1;
s.Open();
s.Write(x.responseBody);
s.SaveToFile("C:\temp.xls", 2);

Uho 28.10.2011 12:25

какие еще есть варианты?

Гинзбург 28.10.2011 13:23

установить сертификат
certutil.exe -f -installCert xxx.cer

Uho 28.10.2011 13:28

20-Гинзбург > а откуда его взять?

Гинзбург 28.10.2011 13:30

-----BEGIN CERTIFICATE-----
MIIFKjCCBBKgAwIBAgIiAhwFYuVdQTrvi/CC9qy+UAprLoxDoVDLGfy1fG11AgIB
FjANBgkqhkiG9w0BAQUFADAuMRAwDgYDVQQKEwd2bGFkYWlyMRowGAYDVQQLExFP
cmdhbml6YXRpb25hbCBDQTAeFw0xMDAxMzEyMjE1NDFaFw0xMjAxMzEyMjE1NDFa
MCwxEDAOBgNVBAoTB1ZMQURBSVIxGDAWBgNVBAMTD29lcy52bGFkYXZpYS5ydTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7/qs+r7ntYcs0vSB9if+Uo
molfFZs1SCT9VeeuirZ0GWnl51XJbpdtXdPC3fLzTp8Pk8xsQ7PrgjEvqNdmCmBd
Ry4yOnf8c1uWI+qHuOuIK/+LhC9bD0S3CBnrrrAulLAOtaW1Cvg36WkYk+sTIc7F
h+hkfU10OGBpQEXjf/gT0y+PdX+RtZ5komrgmROm519apiS3JrpdpcTB3MQj4v7r
0sZkHNUEggeByvJSnzTuakGjXSEHO+8rH1LBNFO4wJ/8x2YE4IU7Wcc1fBg70KBf
DDF4zfuJyCYM2PbupTxTZR2FlsgGUuVs0i7dfMg3+XIXpY6wAcWwMyyvyE5eeSUC
AwEAAaOCAjIwggIuMB0GA1UdDgQWBBS6JBml4KdJTvLo5cNnX3MYPXyZcDAfBgNV
HSMEGDAWgBS0lMq+oKYKlfNq9vmjYEuKwQNKmjALBgNVHQ8EBAMCBaAwDwYDVR0R
BAgwBocEwKjg0zCCAcwGC2CGSAGG+DcBCQQBBIIBuzCCAbcEAgEAAQH/Ex1Ob3Zl
bGwgU2VjdXJpdHkgQXR0cmlidXRlKHRtKRZDaHR0cDovL2RldmVsb3Blci5ub3Zl
bGwuY29tL3JlcG9zaXRvcnkvYXR0cmlidXRlcy9jZXJ0YXR0cnNfdjEwLmh0bTCC
AUigGgEBADAIMAYCAQECAUYwCDAGAgEBAgEKAgFpoRoBAQAwCDAGAgEBAgFGMAgw
BgIBAQIBCgIBaaIGAgEXAQH/o4IBBKBYAgECAgIA/wIBAAMNAIAAAAAAAAAAAAAA
AAMJAIAAAAAAAAAAMBgwEAIBAAIIf/////////8BAQACBAbw30gwGDAQAgEAAgh/
/////////wEBAAIEBvDfSKFYAgECAgIA/wIBAAMNAEAAAAAAAAAAAAAAAAMJAEAA
AAAAAAAAMBgwEAIBAAIIf/////////8BAQACBAVi5V0wGDAQAgEAAgh/////////
/wEBAAIEBWLlXaJOMEwCAQICAQACAgD/Aw0AgAAAAAAAAAAAAAAAAwkAgAAAAAAA
AAAwEjAQAgEAAgh//////////wEBADASMBACAQACCH//////////AQEAMA0GCSqG
SIb3DQEBBQUAA4IBAQB3gv1IQv4l4sPHckSBfLZJFnbbZsf4EMzp/TqgC3vKuAZj
jczSXEzzSWyOVmQWYRuj94tEPEOeb1OvIRI10oRr2+Q4DZGAEd7e+DI4xvJ9qElU
ANVGQO1S06UmLk+bUfsMCOQYrfULWLDRwxzFkCvFTQg/fSSoNgOTIsEsBbnjJGF+
10xiLthgu9litMC926abR++9VKMAI4tEyzuhOUuddEBG0cUGgD4Y7a/JSpCApssX
qPtpaa4n53QsyyUORZzNVpv8y4Sdcdubi8qtJ/lqUdMBIWSQGwrwhcuWFwt3z0lb
FC4lbFvYpzebC+/ZfCYCzOMSQiBr9t6n5sO/YWxj
-----END CERTIFICATE-----

Гинзбург 28.10.2011 13:33

убить пробелы между -----

Uho 28.10.2011 13:34

22-Гинзбург > так и что? установил, он от этого действительным то не стал? ИЕ все равно ругается ((

Гинзбург 28.10.2011 13:35

он действителен

Uho 28.10.2011 14:14

т.е. эта утилита работает не как стандартный установщик сертификатов?

Uho 28.10.2011 14:27

+26 нашел, скачал, что-то она у меня не хочет работать -
пишет "не удается найти указанный файл" (путь к файлу указываю)

VZ 28.10.2011 22:00

"не удается найти указанный файл" - отнесись серьезно. Это не браузер сообщает. И не утилита проверки или установки сертификата. Это винда. Та ее часть, что для всех утил ищет файл.

Uho 01.11.2011 17:43

28-VZ > не, ну как еще?

[img]http://s017.radikal.ru/i435/1111/97/bb4d4ad44a48.jpg[/img]

VZ 01.11.2011 20:55

Чтож не попробовать очевидное:
certutil.exe -f -installCert [b]C[/b]:\[b]T[/b]emp\mysert.cer
?

VZ 01.11.2011 21:03

+30 И использовать папку Temp как-то стрёмно для "черного ящика" - а ну как он использует эту папку в своих служебных целях?...
Другое дело, сам скрипт пишешь, или алгоритм известен (так "восьмерка", например, использует временный каталог, для разворота и открытия внешних обработок из хранилища)

Uho 02.11.2011 09:25

30-VZ > такая же фигня
31-VZ > пробовал в корень С: положить

DeMi4 13.05.2012 23:25

Получилось решить проблему?

Uho 15.05.2012 09:37

32-DeMi4 > задача отпала)))


Текущее время: 04:08. Часовой пояс GMT +3.