Не удалось создать защищенный канал ssl tls. Не удалось создать защищенный канал ssl tls При отправке отчета из "OffLine-клиента" выходит ошибка: "Ошибка при проверке безопасности сообщения"

» предусмотренауникальная возможность отправки межевых и технических планов в Росреестр по каналам прямого взаимодействия (иными словами, напрямую из программы).

В данной статье рассмотрим наиболее часто возникающие ошибки при отправке межевых и технических планов на примере программы « ».

Для того чтобы выполнить отправку межевого плана из программы « » необходимо сформировать заявление в электронном виде. В программе предусмотрена возможность формирования Заявления по 2-м XML-схемам:

  • Reguests_GZK_Realty версии 17 ;
  • StatmentGKN версии 01 .

Примечание: подробнее о том, как заполнить заявление по той или иной XML-схеме см. в статье « ».

Перейдем непосредственно к рассмотрению ошибок, возникающих при отправке межевых и технических планов в Росреестр по каналам прямого взаимодействия.

1 ошибка. Обращаем Ваше внимание, что дополнительные документы необходимо отправлять через программу в Росреестр только с заявлением, сформированным по XML-схеме Reguests_GZK_Realty версии 17 .

По новой XML-схеме StatmentGKN версии 01 дополнительные документы не проходят , а выдается ошибка «Проверка не пройдена. ФЛК, либо проверка ЭЦП не пройдена. Неизвестный тип заявления» .

Решение: если при отправке дополнительных документов из программы выдалась данная ошибка, сформируйте заявление по XML-схеме Reguests_GZK_Realty версии 17 и отправьте пакет заново.

2 ошибка. Ошибка «Не удалось выполнить запрос. Ошибка: Удаленный сервер возвратил ошибку (500). Внутренняя ошибка сервера» обычно появляется при отправке ZIP-архива межевого плана, сформированного без заявления.

Решение: установите в окне «Настройки» галочки:

  • «Формировать пакет (ZIP–архив и заявление) для передачи по каналам прямого взаимодействия»;
  • «Формировать заявление StatementGKN версии 01»
  • «Формировать заявление при выгрузке XML»;
  • «Вкладывать в ZIP–архив XML–заявление» .

Рис.1. Окно «Настройки».

Далее заполните заявление (при выгрузке будет сформировано два XML-файла: заявление и межевой план) и сформируйте ZIP-архив с префиксом req . Помимо этого ошибка может появиться, если указан длинный путь к ZIP-архиву. В этом случае рекомендуем уменьшить путь до ZIP-архива.

3 ошибка. «Не удалось выполнить запрос. Ошибка: The request was aborted: Could not create SSL/TLS Secure channel»

«Не удалось выполнить запрос. Ошибка: запрос был прерван. Не удалось создать SSL/TLS защищенный канал»

Решение: для устранения данной ошибки необходимо проверить Ваш сертификат электронной подписи (ЭП), а именно:

  • Проверьте, правильно ли выбран сертификат отправителя в настройках программы (в окне «Настройки» на вкладке «Отправка» в поле «! Сертификат отправителя» ):


Рис.2. Окно «Настройки», вкладка «Отправка».

    Сертификат ЭП обязательно должен быть установлен в Личное хранилище;

    Проверьте, вставлен ли контейнер с закрытым ключом (например, смарт-карта, флешка). *Закрытый ключ может храниться и на компьютере, а не на съемном носителе .

    Проверьте, есть у сертификата ЭП назначение «TLS клиент». Для решения данного вопроса необходимо обратиться в удостоверяющий центр, где Вы приобретали подпись.

    Должен быть установлен криптопровайдер КриптоПро CSP .

    Проверьте, не закончился ли срок действия ЭП.

    Выясните, предназначена ли Ваша ЭП для работы с Росреестром и является ли усиленной квалифицированной ЭП кадастрового инженера. При необходимости обратитесь в удостоверяющий центр (см. «).

Пожалуйста, ознакомьтесь с системными требованиями для данного сервиса на нашем форуме по ссылке: .

4 ошибка. «Не удалось выполнить запрос. Ошибка: The request was aborted: The request was canceled»

«Не удалость выполнить запрос. Ошибка: Запрос был прерван: Запрос был отменен»

Данная ошибка обычно связана с тем, что размер отправляемого ZIP-архива слишком большой.

Решение: в окне «Настройки» на вкладке «Отправка» увеличьте таймаут для портала Росреестра в поле «Таймаут для портала Росреестра (сек.)» , например, до 800 сек.


Рис.3. Окно «Настройки», вкладка «Отправка».

Примечание: обращаем Ваше внимание, что на ZIP-архивы, отправляемые по каналам прямого взаимодействия, Росреестром установлены ограничения. Размер ZIP-архива, отправляемого по каналам прямого взаимодействия не должен превышать 50 Мб.

5 ошибка . «Не удалось открыть модуль отправки. Возможно, не установлена или неправильно установлена библиотека CAPICOM.dll. Функции отправки запросов на портал Росреестра недоступны»

«Файл модуля отправки поврежден. Последние изменения утеряны, открыть последний сохраненный файл? Не установлен или неправильно установлен СAPICOM. Функции отправки запросов на портал Росреестра недоступны»

Данная ошибка возникает из-за неполного доступа к модулю отправки.

Решение: необходимо удалить и восстановить лог отправок. Для этого зайдите в папку, где установлена программа и удалите файлы exch.log и exch_bak.log . После этого в окне «Обмен информацией с Росреестром» нажмите на треугольник рядом с кнопкой «Настройки» и выберите «Восстановить лог» .

Мы рассмотрели наиболее часто встречающиеся ошибки при отправке как межевых, так и технических планов напрямую из программ серии «Полигон» .

Если интересующая Вас ошибка не описана в данной статье, Вы всегда можете связаться со специалистами отдела технической поддержки для решения проблемы по бесплатному номеру тел. 8-800-100-58-90 или по эл.почте: .

Всегда рады Вам помочь!

В случае отправки дополнительных пакетов данную галочку не устанавливайте и сформируйте заявление по схеме Reguests_GZK_Realty версии 17.


Количество показов: 7151

Создали сертификат на одной машине. Установил на другую в Личные. Приложением пытаемся подрубиться к скачке XML файла - возникает ошибка: не удалось создать защищенный канал ssl tls.
Требуется помощь для решения проблемы.

Class MyCerts { private static int CERT_STORE_PROV_SYSTEM = 10; private static int CERT_SYSTEM_STORE_CURRENT_USER = (1 << 16); //private static int CERT_SYSTEM_STORE_LOCAL_MACHINE = (2 << 16); public static extern IntPtr CertOpenStore(int storeProvider, int encodingType, int hcryptProv, int flags, string pvPara); public static extern IntPtr CertEnumCertificatesInStore(IntPtr storeProvider, IntPtr prevCertContext); public static extern bool CertCloseStore(IntPtr storeProvider, int flags); X509Certificate2Collection m_certs; public MyCerts() { m_certs = new X509Certificate2Collection(); } public int Init() { IntPtr storeHandle; storeHandle = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, "MY"); IntPtr currentCertContext; currentCertContext = CertEnumCertificatesInStore(storeHandle, (IntPtr)0); int i = 0; while (currentCertContext != (IntPtr)0) { m_certs.Insert(i++, new X509Certificate2(currentCertContext)); currentCertContext = CertEnumCertificatesInStore(storeHandle, currentCertContext); } CertCloseStore(storeHandle, 0); return m_certs.Count; } public X509Certificate2 this { get { if (index < 0 || index > m_certs.Count) return null; else return m_certs; } } } class MyHttpResource { String m_url; public MyHttpResource(string url) { m_url = url; } public void GetFile() { HttpWebResponse result = null; //============================================================== System.Net.ServicePointManager.CertificatePolicy = new MyPolicy(); //============================================================== try { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(m_url); req.Credentials = CredentialCache.DefaultCredentials; //req.ClientCertificates.Add(X509Certificate2.CreateFromCertFile("C:\\Temp\\cert\\c1.cer")); MyCerts mycert = new MyCerts(); if (mycert.Init() > 0) req.ClientCertificates.Add(mycert); Console.WriteLine(mycert.Thumbprint); Console.WriteLine(mycert.Thumbprint); result = (HttpWebResponse)req.GetResponse(); StreamWriter writer = new StreamWriter(@"C:/123.txt"); Stream ReceiveStream = result.GetResponseStream(); #region For XML files Encoding encode = System.Text.Encoding.Default; #endregion #region For sites //Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); #endregion StreamReader sr = new StreamReader(ReceiveStream, encode); Console.WriteLine("\r\nResponse stream received"); Char read = new Char; int count = sr.Read(read, 0, 256); Console.WriteLine("HTTP Response...\r\n"); while (count > 0) { String str = new String(read, 0, count); Console.Write(str); writer.WriteLine(str); count = sr.Read(read, 0, 256); } writer.Close(); } catch (WebException e) { Console.WriteLine(e.Message); } finally { if (result != null) { result.Close(); } } } } //============================================================== public class MyPolicy: ICertificatePolicy { public bool CheckValidationResult(ServicePoint srvPoint , X509Certificate certificate , WebRequest request , int certificateProblem) { return true; } } //============================================================== class CertSample { static void Main(string args) { //Console.WriteLine("Куды подрубимся?"); //string str = Console.ReadLine(); //if (!str.StartsWith("http://")) // if(!str.StartsWith("https://")) // str = "http://" + str; string str = @"https://192.168.191.248/xml/80020.xml"; Console.WriteLine("Подключаемся к "+str); try { MyHttpResource hr = new MyHttpResource(str);//"http://br.so-ups.ru/Public/Docs/DocList.aspx" hr.GetFile(); } catch (Exception e) { Console.WriteLine(e.Message); } return; } }

У меня есть веб-сервис, который я зарегистрировал через "добавить ссылку на службу", для которой требуется HTTPS и сертификат. Ниже приведен мой код для создания экземпляра моего сервиса:

Service = new MyReferencedWebService(); X509Certificate2 cert = new X509Certificate2(); var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Mycert.cer"); var bytes = new byte; stream.Read(bytes, 0, bytes.Length); cert.Import(bytes, MYPASSWORD, X509KeyStorageFlags.DefaultKeySet); service.ClientCredentials.ClientCertificate.Certificate = cert;

и моя конфигурация выглядит так:

Если я создаю простой winforms.exe и использую вышеуказанный код, я получаю ответ от своего веб-сервиса. Однако, если я ставлю этот же код в ASP.NET, я получаю следующее:

Запрос был прерван: не удалось создать безопасный канал SSL/TLS.

Как это сделать в ASP.NET?

EDIT: Я должен добавить. Клиентский сертификат, который я использую, привязан к смарт-карте и требует ввода PIN-кода для использования. Не уверен, что это имеет значение или нет.

Когда клиент входит в приложение, он запрашивает у них свой PIN-код сертификата. В этом случае у них есть карточка CAC, вставленная в считыватель CAC. Может быть, я могу каким-то образом использовать Request.ClientCertificate?

3 ответа

Каков ваш план здесь? Другими словами:

Кто будет вводить ПИН? Кто собирается вставлять смарт-карту?

Вы не можете установить безопасный канал между веб-сервером ASP.NET и веб-службой без смарт-карты и вывода, поскольку клиент (т.е. веб-сервер ASP.NET) должен получить доступ к закрытому ключу на смарт-карте (и для этого нужен штырь). Я боюсь, что единственный способ заставить это работать - это получить весь сертификат (включая закрытый ключ) от смарт-карты (что должно быть очень сложно, если не невозможно, по дизайну).

Ваш лучший способ действий:

A) Запросить "сертификат сервера" (не смарт-карту), который может использоваться в качестве сертификата клиента для канала между веб-сервером ASP.NET и целевой веб-службой.

B) Перепроектируйте решение таким образом, чтобы клиенты (люди, у которых есть смарт-карты и контакты) напрямую подключались к защищенному веб-сервису с помощью смарт-карты и PIN-кода.

Доступен ли сертификат корневого сертификата сертификата? Если вы импортировали его самостоятельно, он был импортирован в хранилище сертификатов пользователя, к которому iis не может получить доступ (вместо этого импортируйте его в хранилище)

Документация для конструктора класса говорит, что класс получит доступ к CSP для хранения закрытого ключа сертификата (для pfx). Это не должно быть необходимо для файла cer, но, возможно, вы все еще сталкиваетесь с проблемами разрешения, если вы работаете в качестве пользователя пула приложений?

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

Конфигурация клиента WCF

На всякий случай, убедитесь, что адрес вашей конечной точки имеет форму:

"https://hostname[:port]/ServiceDirectory/MyService.svc"

Предполагая, что конфигурация вашей службы верна, конфигурация привязки вашего приложения ASP.NET должна быть:

Проблема, с которой вы можете столкнуться, заключается в передаче/поставке сертификата клиента на ваш сервис.

Если ваша служба размещена в IIS 6.0 или IIS 7.0, вы должны настроить IIS, на котором размещена ваша служба WCF, для принятия клиентских сертификатов.

Ваше приложение asp.net является клиентом WCF. См. эту страницу по использованию сертификата смарт-карты и Защита служб WCF с сертификатами .

Вам также понадобится сертификат SSL сервера, который будет установлен в IIS, где вы размещаете свой сервис WCF для поддержки HTTPS.

Конфигурация службы WCF

Конечная точка службы должна включать защищенную привязку HTTP, а также поведение службы, чтобы включить httpsGetEnabled и отключить httpGetEnabled:

Необходимо использовать ЭЦП полученную от своего спецоператора связи. Ту, которую Вы используете для отправки отчетности в другие гос.органы (ПФ, ФНС, ФСС и т.д.)

2. Какую версию Шарпея устанавливать?

Чтобы узнать разрядность своей Windows нужно:

    Кликнуть правой кнопкой мыши на "Мой компьютер"

    Выбрать Свойства

    Если у вас в разделе "Система" - "Тип системы" будет написано 64-х разрядная система - значит 64-х разрядная, в остальных случаях 32-х разрядная.

3. При регистрации в системе WEB-сбора вышло сообщение, что такая организация уже существует

Если при регистрации будет выдана ошибка, что организация с таким ОКПО уже зарегистрирована , значит информация об организации уже присутствует в системе сбора отчетности. Такая информация поступает в систему из Единого модуля приема отчетности.

В этом случае, необходимо:

  1. Отправить письмо на адрес [email protected] , с указанием ваших данных:
    • Наименование организации
    • На чье имя выписан сертификат (которым Вы подписывали отчетность) и кем выдан
    • Контактные данные
    • адрес электронной почты (обязательно)
  2. После получения письма от Вас, сотрудники ТОГС внесут в карточку Вашей организации недостающие сведения и направят Вам письмо с инструкцией по смене пароля (сами мы пароль не назначаем).
  3. После прохождения процедуры смены пароля Вы можете начинать отчитываться в электронном виде.

4. При подписании отчета выходит ошибка: "Алгоритм сертификата ключа не поддерживается"

  1. Имеются обновления Microsoft, которые приводят к возникновению ошибок при работе с ЭЦП.
    Это следующие обновления:
    • 2604094
    • 2729450
    • 2729452
    • 2729453
    • 2742601
    Для исправления ошибки "Алгоритм сертификата ключа не поддерживается" нужно удалить вышеперечисленные обновления Microsoft.
    Обновления Microsoft удаляются через "Панель управления" - "Установка удаление программ".
  2. Также, данная ошибка может проявляться если SharpeiRTE установлен до установки Net Framework 2.0SP2. В этом случае запустите установку SharpeiRTE повторно, выберите "Изменить" и отметьте включение поддержки Framework​​ 2.

5. При отправке отчета из "OffLine" выходит ошибка: "Не удалось установить соединение с сайтом... Не удается установить доверительные отношения для защищенного канала SSL/TLS"

  1. Проверьте в настройках OffLine-клиента правильность написания адресов подключения:

    Безопасное соединение: https://online.statrk.ru/online

  2. Установить в хранилище «Доверенные корневые центры сертификации» сервера сбора статотчетности . Смотрите инструкцию .
  3. Откройте Internet Explorer и перейдите по адресу https://online.statrk.ru/online . Если сертификат "УЦ ГМЦ Росстата" установлен, то страница откроется без предупреждений . Иначе выйдет предупреждение о невозможности проверить подлинность сайта.
  4. Проверьте, установлен ли "КриптоПРО Шарпей". Его можно загрузить с сайта OnLine-сбора ()

6. При отправке отчета из "OffLine-клиента" выходит ошибка: "Ошибка при проверке безопасности сообщения"

    Проверьте правильность установки времени на вашем компьютере. При отправке система проверяет совпадение времени на вашем компьютери с временем на сервере сбора отчетности по всемирному времени (UTC), а не по местному. Соответсвенно для Республики Калмыкия часовой пояс на вашем компьютере должен быть выставлен как "(UTC +4:00 ) Москва, Санкт-Петербург, Волгоград" . Если у вас часовой пояс " (UTC +3:00 ) Москва, Санкт-Петербург, Волгоград", то вам необходимо загрузить и установить