|
Мобильное приложение. Подключение через Http сервис по ssl | ☑ | ||
---|---|---|---|---|
0
Sargez
13.09.18
✎
10:34
|
Здравствуйте
Разработана мобильная конфигурация, которая по http сервису общается с центральной базой. Окружение следующее: Платформа 1с: 8.3.10.2466 Веб-сервер: Apache (слушает 443 порт, настроен на https соединение) Необходимо установить https соединение на основе доверенного TLS-соединения с сервером на основе конкретного сертификата. Создал 2 ключа: один ключ центра сертификации: "CA_Test.crt", создал сертификат сервера, подписанный сертификатом "CA_Test.crt" - "server.crt" Указываю следующие параметры подключения: ПутьКФайлу = "E:\ssl\Mobile\CA_Test.crt"; СертификатЦА = Новый СертификатыУдостоверяющихЦентровФайл(ПутьКФайлу); SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,СертификатЦА); Попытка тСоединение = Новый HTTPСоединение(Адрес, Порт , Логин, Пароль , , ,SSL); тHTTPЗапрос = Новый HTTPЗапрос(ТекстЗапроса); тОтвет = ""; Попытка тHTTPОтвет = тСоединение.Получить(тHTTPЗапрос); тОтвет = тHTTPОтвет.ПолучитьТелоКакСтроку(); Исключение Сообщить("Не удалось установить соединение. " + ОписаниеОшибки());//(ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; Пытаюсь сначала протестировать даже в режиме 1с: предприятия (не через мобильное устройство), при выполнении кода тHTTPОтвет = тСоединение.Получить(тHTTPЗапрос); Выдается следующая ошибка: "Не удалось установить соединение. {Обработка.Тест.Форма.ФормаДляМобильногоТелефона.Форма(149)}: Ошибка при вызове метода контекста (Получить): Ошибка работы с Интернет: Удаленный узел не прошел проверку" В чем проблема? что я не правильно делаю? помогите разобраться, без указания сертификата подключение проходит. Сертификат СА включен в корень доверенного. Спасибо, всем откликнувшимся на проблему. |
|||
1
arsik
гуру
13.09.18
✎
10:44
|
Посмотри еще логи апача. Может там подробнее будет.
|
|||
2
arsik
гуру
13.09.18
✎
10:47
|
Возможно нужно в сертификате сервера указать правильный url в поле CN
|
|||
3
1000110111100101
13.09.18
✎
10:57
|
Установи сертификат в систему, открой ссылку в браузере и посмотри на что он заругается.
|
|||
4
Sargez
13.09.18
✎
11:00
|
(1) в логах апача смотрел, ни в error, ни в access ничего вообще нет, те такое ощущение что до него даже не доходит дело
|
|||
5
Sargez
13.09.18
✎
11:03
|
(3) открыл IE, ввел адрес сервера в строке. получил ошибку окружения, "ошибка сертификата", нажимаю "просмотреть сертификат" - на вкладке путь сертификации "Сертификат действителен". В чем еще может быть проблема? Доверие же обозначено
|
|||
6
Sargez
13.09.18
✎
11:08
|
(3) единственное на ошибке в браузере след.ошибка описана:
"Несовпадающий адрес". Сертификат безопасности этого веб-сайта был выпущен для веб-сайта с другим адресом. |
|||
7
PloAl
13.09.18
✎
11:12
|
(0)
Зачем использовать сертификат на клиенте при подключении? Зачем добавлять сертификат в доверенные? В браузере при подключении к сайту с самоподписанным сертификатом, не указывают сертификат. А добавление в доверенные, нужно только для зеленого замочка, сомневаюсь что он у вас где то есть. Странный для мобильного приложения ПутьКФайлу. |
|||
8
Sargez
13.09.18
✎
11:22
|
(7) путькфайлу - пока такой для теста просто в отладчике в среде 1с, до мобильного приложения еще не могу дойти. Мне нужно добиться, чтобы клиенты общались только с определенным сервером, чтобы убрать уязвимость в виде "человек по середине", для этого и пытаюсь разобраться с сертификатами
|
|||
9
PloAl
13.09.18
✎
11:27
|
(8) С самоподписанным сертификатом вы этого никогда не добьетесь.
|
|||
10
Sargez
13.09.18
✎
11:30
|
(9) почему? если я смогу заставить клиента всегда запрашивать сертификат сервера , а допустим сервер запрашивать сертификат клиента , то вроде бы уязвимость закрывается. главное, чтобы клиент не доверял любому сертификату, а только конкретному.
|
|||
11
arsik
гуру
13.09.18
✎
11:31
|
(6) Вы неправильно создали сертификат сервера
"CN - имя сертификата, при создании серверных сертификатов используется доменное имя сайта, для клиентских сертификатов может быть использовано что угодно (CommonName). Обязательный параметр." |
|||
12
PloAl
13.09.18
✎
11:44
|
(10) А что мешает человеку посередине, сказать я ваш сервер, запросить сертификат с реального сервера и передать клиенту? Доверие как раз и происходит по доменному имени и несамоподписанному сертификату.
|
|||
13
arsik
гуру
13.09.18
✎
11:45
|
Ну и у тебя еще должен быть сертификат клиента, я так думаю.
|
|||
14
arsik
гуру
13.09.18
✎
11:45
|
(12) Человек по середине никогда не получит закрытый сертификат сервера, а открытый ему ничего не даст.
|
|||
15
Sargez
13.09.18
✎
11:48
|
(14) +1 насчет получения сертификата сервера.
|
|||
16
Sargez
13.09.18
✎
11:49
|
(13) сейчас попробую создать сертификаты заново и уделить внимание CN. Напишу по результату.
да, а что за сертификат клиента? и как его создавать, подскажите, пожалуйста? |
|||
17
arsik
гуру
13.09.18
✎
11:52
|
(16) Какой оснасткой создаешь сертификаты?
|
|||
18
Sargez
13.09.18
✎
11:53
|
(17) Win64OpenSSL-1_1_0i
|
|||
19
arsik
гуру
13.09.18
✎
11:57
|
Вот вариант для openssl
http://krd-news.blogspot.com/2014/04/ssl-apache.html |
|||
20
arsik
гуру
13.09.18
✎
12:09
|
||||
21
Sargez
13.09.18
✎
12:27
|
(20) подскажите, дошел до этапа создания серверного ключа, в [ alternate_names ] я должен указать IP по которым будет доступен мой сервер. получается если у меня база будет поубликована, скажем на IP 10.10.10.1, а обращаться я буду в локальной сети с 10.10.10.2, то в [ alternate_names ] указываю 10.10.10.1, верно? что я должен в данном случае указать в параметре CN ? у моего веб-сервера нет доменного имени, я указываю IP там или ИмяКомпьютера в локальной сети?
|
|||
22
arsik
гуру
13.09.18
✎
13:04
|
если указываешь поле alternate_names, то CN любое.
|
|||
23
arsik
гуру
13.09.18
✎
13:04
|
зачем тебе вообще в локальной сети ssl.
|
|||
24
PloAl
13.09.18
✎
13:19
|
(12) Я не писал, открытый или закрытый, ключи и прочие подробности. Я всего лишь повторил написанное в (10), с целью продемонстрировать логику человека посередине.
|
|||
25
arsik
гуру
13.09.18
✎
13:36
|
(24) Это просто защита от фишинга сайтов. Она не нужна, когда у тебя на клиенте есть клиентский сертификат.
|
|||
26
PloAl
13.09.18
✎
14:00
|
(25) фишинг это когда на почту или еще куда приходит ссылка похожая на настощую g00gle.com/login, а по ссылке сайт копия настоящего
|
|||
27
Sargez
13.09.18
✎
15:36
|
(11) cпасибо. дело было в ключах сервера и настройки апача.
|
|||
28
arsik
гуру
13.09.18
✎
15:43
|
(27) А подробнее?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |