Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 HTTP запрос из SQL CLR через SSL  [new]
Riven
Member

Откуда:
Сообщений: 102
Приветствую.

Нужно получить данные по HTTP с использованием SSL (https://).

Проблема в том, что SQL Server CLR не использует сертификаты, импортированные на уровне ОС, на которой он крутится. Либо что-то где-то не так настроено.

Проблема неоднократно поднималась на западных форумах, но ответа не было.

Просто импортировав удаленный сертификат в Trusted Root CA, тот же MSIE перестает спрашивать подтверждение доверенности сертификата, запрос проходит успешно, как и во всех .NET сборках, запущенных на машине.

При обращении же из сборки в SQL Server CLR получаю ошибку:
System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.

Обход этой ситуации в SQL CLR с помощью отключения валидации сертификата (через System.Net.ServicePointManager.CertificatePolicy или System.Net.ServicePointManager.ServerCertificateValidationCallback) в SQL CLR запрещены явно.

P.S. Естественно, что на сборку и БД даны максимальные права - TRUSTWORTHY, EXTERNAL_ACCESS.

Хотел написать xp - в BOL написано, что не стОит, т.к. в будущих версиях xp будут отключены, что нужно делать все через CLR...

Код стандартный:
HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create("https://someservice");
HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();
2 авг 10, 09:45    [9191215]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: HTTP запрос из SQL CLR через SSL  [new]
essbase.ru
Member

Откуда: http://essbase.ru/about
Сообщений: 1407
Riven,

Привет .

Извини что не по теме топика ) Ты можешь привести рабочий пример кода CLR+HTTP for SQL 2008R2


ER
21 дек 13, 17:17    [15327790]     Ответить | Цитировать Сообщить модератору
 Re: HTTP запрос из SQL CLR через SSL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Мыши плакали кололись, но продолжали.
Riven
Проблема в том, что SQL Server CLR не использует сертификаты, импортированные на уровне ОС, на которой он крутится. Либо что-то где-то не так настроено.

Просто импортировав удаленный сертификат в Trusted Root CA, тот же MSIE перестает спрашивать подтверждение доверенности сертификата, запрос проходит успешно, как и во всех .NET сборках, запущенных на машине.
Патамушта использование только такого подхода не проффесионализм и шарлатанство.
Надо ещё научится прописывать сертификат явно вручную, а не чтоб оно там тёмной магией само искало сертификат.
Вот когда научитесь и запустите, тогда можете копать в сторону, а как бы это сделать удобным для одминов.

Кстати, хранить сертификаты можно по разному, особенно под углом тематики MS SQL.

автор
на уровне ОС
Главная уйнатень этой фигни в том, что она не ударит тебя в темечко за долго до окончания жизни сертификата - а должно, туды её в качель.
Ибо таких ответственных админов адын на лярд.


автор
Хотел написать xp - в BOL написано, что не стОит, т.к. в будущих версиях xp будут отключены, что нужно делать все через CLR...
Ну тогда с M$ и спрос. Никто не удосужился задать вопрос.
23 дек 13, 03:14    [15331693]     Ответить | Цитировать Сообщить модератору
 Re: HTTP запрос из SQL CLR через SSL  [new]
essbase.ru
Member

Откуда: http://essbase.ru/about
Сообщений: 1407
Mnior
Мыши плакали кололись, но продолжали.

что это было ? день открытых дверей?
23 дек 13, 07:32    [15331780]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить