Когда вы открываете браузер, то планируете, что всё будет в обычном режиме. Но что делать, если компьютер не хочет работать как надо? И сообщает, что сертификат сервера недействителен? В этом случае вам необходимо проверить, как всё работает, всё ли правильно выставлено, и нет ли каких-то проблем. Можно увидеть это сообщение на крупных сайтах (недействительный сертификат сервера Google, «ВКонтакте»), которые просто не могут допустить такую оплошность.
Мое приложение запущено. Он работал нормально. Но за несколько дней до этого мы изменили сертификаты (в целях безопасности) на сервере. И теперь всякий раз, когда я пытался запустить свое приложение. Выдает ошибку :
Сертификат для этого сервера недействителен. Возможно, вы подключаетесь к серверу, который выдает себя за «ДОМЕННОЕ ИМЯ», что может поставить под угрозу вашу конфиденциальную информацию.
Я использую Swift3. Я хочу знать, это проблема во внешнем интерфейсе или на сервере? Как я могу решить эту проблему?
Примечание. Я много искал, но не нашел решения. Я также попробовал Titanium — «Сертификат для этого сервера недействителен. Возможно, вы подключаетесь к серверу, который выдает себя за DOMAIN.COM », но я уже выполнил все шаги.
Другое дело — веб-приложение и Android-приложение работает нормально. Но приложение iOS выдает ошибку.
Я пытаюсь подключиться к своему API-интерфейсу ASP.NET Core, который я использую на другом компьютере. Я хочу попробовать добавить данные с помощью запроса POST. Я получаю следующие сообщения об ошибках:
Соединение 6: ошибка оценки доверия TLS по умолчанию (-9813)
Соединение 6: доверие TLS обнаружило ошибку 3: -9813
Соединение 6: обнаружена ошибка (3: -9813)
Сертификат для этого сервера недействителен. Возможно, вы подключаетесь к серверу, который выдает себя за «192.168.0.100», что может поставить под угрозу вашу конфиденциальную информацию.
На данный момент я не беспокоюсь о каком-либо риске, потому что это только в целях развития. Есть ли способ доверять соединению или полностью игнорировать проверку?
Что это значит?
Для начала: зачем используется данное обозначение? Что это значит, когда компьютер сообщает, что представленный сервером сертификат недействителен? Таким образом, компьютер говорит, что электронные документы сайта, которые он предоставил, имеют какую-то неточность, благодаря чему у машины есть основание для сомнений относительно его подлинности или полноценности функционирования. Данная проблема может возникнуть как из-за неполадок со стороны сервера, так и из-за неточностей на ЭОМ пользователя. Если рассматривать первую версию, то тут может быть такое:
- Неполадка с сайтом центра сертификации. Все эти подтверждения выдают специальные организации. И как любой другой, они не застрахованы от возможных проблем вроде террористов, землетрясения, оползней, повреждения линий передач и многих других проблем. Но это случается крайне редко, и уповать на данный пункт особо не приходится.
- Проблемы с сайтом вследствие технических неполадок или умышленного вреда. Здесь тоже может пойти что-то не так. Системный администратор что-то не то нажал или злоумышленники ведут атаку сервера, результат один – сертификат сервера недействителен. Но это тоже редко случается.
Основные проблемы данного типа происходят в основном на клиентских компьютерах пользователей. Здесь уже может быть ассортимент причин намного шире, поэтому будут названы основные:
- Неправильно установленное время.
- Проблема с программным обеспечением, предназначенным для просмотра Всемирной сети.
И как же устранить данные проблемы? Вот этому вопросу сейчас и будет уделено внимание.
Я знаю, что если я использую следующий nsurlconnectiondelegate, он будет исправлен
— соединение: willSendRequestForAuthenticationChallenge: — соединение: canAuthenticateAgainstProtectionSpace
Но я пытаюсь использовать
sendAsynchronousRequest: очередь: завершениеHandler:
Таким образом, вы не получите обратного вызова. Я заглянул в документы Apple, в которых говорится следующее
Если для загрузки запроса требуется аутентификация, необходимые учетные данные должны быть указаны как часть URL-адреса. Если аутентификация не удалась или учетные данные отсутствуют, соединение будет пытаться продолжить без учетных данных.
Я не мог понять, как это сделать. Когда я посмотрел, все, что у меня есть, это частный звонок
Есть идеи как это сделать?
Ниже приводится ошибка, которую я получаю
3.
1С-КПД
Сейчас в теме
4.
Rodnaya
Сейчас в теме
(3) 1С-КПД, сертификат, выданный центром это я так понимаю платный? Как создать самоподписанный? И самое главное будет ли мобильный клиент работать с укр. конфигурацией?
2.
Rodnaya
Сейчас в теме
5.
Rodnaya
Сейчас в теме
Спасибо большое за помощь!
6.
1С-КПД
Сейчас в теме
(5) Rodnaya, будет, следуйте инструкции:
«если на сервере используется самоподписанный сертификат. Необходимо использовать сертификат, выданный доверенным центром сертификации, либо добавить самоподписанный сертификат в список доверенных на самом устройстве iOS, используя утилиту iPhone Configuration Utility (
»
По ссылке указано решения для айфона и айпода, но для айпада тоже должна подойти.
7.
Rodnaya
Сейчас в теме
8.
Rodnaya
Сейчас в теме
Сертификат установила из почты. Видимо надо только утилитой? Также на андроиде из почты установила сертификат, ситуация та же. странно, почему под тонким клиентом не происходит коннект.
10.
1С-КПД
Сейчас в теме
12.
Rodnaya
Сейчас в теме
(10) 1С-КПД, раньше да ))) успели )))
13.
1С-КПД
Сейчас в теме
(12) Rodnaya, «непроверенный сертификат» «принять-отказаться» было когда я подключался, что сейчас не вижу (ссылки не сохранилось). К сожалению, на ощупь помочь не могу.
9.
Rodnaya
Сейчас в теме
11.
Rodnaya
Сейчас в теме
Ошибка тонкого клиента такая же как и на мобильном клиенте..
14.
Rodnaya
Сейчас в теме
15.
Rodnaya
Сейчас в теме
У меня на планшете и на айфоне нет «принять-отказаться». как вам ссылку передать? мой скайп n.kersanova
16.
Zabava_
Сейчас в теме
17.
Rodnaya
Сейчас в теме
18.
spezc
Сейчас в теме
насколько я знаю SSL на мобильной платформе еще не реализовано
19.
oleg_romanoff
Сейчас в теме
Если кто-то вдруг попадет сюда: в 8.3.6 на мобильной платформе появилось. Хотя работать с само-подписанными еще не получается.
20.
valkovsky
Сейчас в теме
Сертификат для данного сервера недействителен
– соединение: willSendRequestForAuthenticationchallenge: –
подключение:canAuthenticateAgainstProtectionspace
sendAsynchronousRequest: очередь: completionHandler:
Так что вы не получите обратный вызов. Я посмотрел в Apple docs, он говорит следующее
Если аутентификация требуется в чтобы загрузить запрос, требуемые учетные данные должны быть указаны как часть URL. Если проверка подлинности завершится неудачно или учетные данные отсутствуют, соединение попытается продолжить работу без учетных данных.
Я не мог понять, как это сделать. Когда я посмотрел все, что я получил, это частный звонок
есть идеи, как это сделать?
ниже ошибка, которую я получаю
Ответов
вы не можете исправить это так, как вы пытаетесь
- либо падение на CFNetworking, чтобы разрешить плохие сертификаты
- использовать соединение с делегатом и ЮНОДК ведет бы способ
- используйте частный API, который вы нашли
все не хорошо. CFNetwork должен быть в порядке для apple на данный момент, но другие 2 метода даже не AppStore-safe
лучше исправьте сервер. Это самый простой и Чистых
веб-сервер, который вы используете, запрашивает аутентификацию доверия сервера, вам нужно правильно ответить соответствующим действием. Вам нужно реализовать connection:willSendRequestForAuthenticationChallenge: делегировать метод и использовать SecTrustRef для его аутентификации.
Это был мой код для исправления ошибки:
Если вы используете AFNetworking, вы можете использовать этот код:
(так же, как временное решение на стороне клиента!)
Это ошибка сертификата. вам нужно изменить настройки, чтобы ваша программа/ОС игнорировала сертификат, или добавить url/сертификат в доверенный список.
Извините что проверка подлинности сертификата проверки подлинности. Я посмотрел и нашел эту статью.
Не уверен, что это решит вашу проблему, но в основном говорится, что они не охватывают случай подключения к сайту с тем, как сертификат в документация.
в моем случае эта ошибка произошла из-за того, что мой брандмауэр заблокировал требуемый url. он отлично работает после удаления ограничений брандмауэра
Я получаю эту ошибку:
удаленный сертификат недействителен в соответствии с процедурой проверки.
всякий раз, когда я пытаюсь отправить электронную почту с помощью SMTP-сервера Gmail в моем коде C#.
Может ли кто-нибудь указать мне правильное направление для решения этой проблемы?
в качестве обходного пути вы можете отключить проверку сертификата. Только когда-либо сделать это, чтобы получить подтверждение, что ошибка бросается из-за плохого сертификата.
вызвать этот метод перед вызовом smtpclient.Send():
ссылка здесь решила мою проблему.
Я пошел по url веб-службы (на сервере, который имел проблему), нажал на маленький значок безопасности в IE, который вызвал сертификат. Затем я нажал на вкладку «Сведения», нажал кнопку «Копировать в файл», что позволило мне экспортировать сертификат как a .файл cer. Как только я получил сертификат локально, я был возможность импортировать его в хранилище сертификатов на сервере, используя приведенные ниже инструкции.
выберите клиентский компьютер на следующем экране. нажать кнопку Finish.
Нажмите Кнопку Закрыть.
нажимать OK.
Теперь установите сертификат в хранилище сертификатов доверенных корневых центров сертификации. Это позволит всем пользователям доверять сертификат.
вы можете улучшить код, чтобы спросить пользователя, что сертификат недействителен. Хотите продолжить? Как показано ниже:
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback(ValidateServerCertificate);
и добавьте такой метод:
немного поздно для партии, но если вы ищете решение, как у Юрия, следующий код поможет вам определить, связана ли проблема с сертификатом самозаверения, и если да, то игнорировать ошибку самозаверения. Очевидно, вы можете проверить другие ошибки SSL, если хотите.
У меня была точно такая же проблема и я понял, что по умолчанию Экран Почты от Avast antivirus был «сканировать SSL-соединение» активировать. Убедитесь, что выключить.
из моих знаний, Avast будет «открыть» почта, сканируйте ее на наличие вирусов, а затем подпишите его, используя собственный сертификат таким образом, Почта больше не будет подписываться сертификатом gmail, который производит это ошибка.
- как-то получить сертификат, используемый антивирусом (Avast имеет возможность экспортировать его)
- импортируйте его в клиент imap/pop/smtp перед подключением к серверу gmail.
вы уверены, что используете правильный адрес SMTP-сервера?
оба smtp.google.com и smtp.gmail.com работают, но SSL сертификат выдается второму.
получить ту же ошибку при отправке из outlook из-за ssl. Попробовал установить EnableSSL = false решил проблему.
проверяет сертификат, содержащий адрес сервера, который не равен адресу прокси-сервера, следовательно, ошибка.
Мое решение: при возникновении ошибки при проверке сертификата получите сертификат, экспортируйте его и проверьте.
полный код моего класса отправителя электронной почты:
моя проблема была на сервере Windows 2003 при вызове AuthenticateAsClient. Решения выше (например, обход ServicePointManager.ServerCertificateValidationCallback) не работает.
оказывается, это ошибка в Windows 2003, и есть исправление:
«приложения, использующие API криптографии, не могут проверить сертификат X. 509 в Windows Server 2003»
установка этого исправления решила мою проблему.
ваша папка веб-сайта нуждается в безопасности сетевой службы. Особенно в интернете.конфиг. Эта учетная запись используется для доступа к реестру сертификатов. Это остановит необходимость добавления взлома в ваш код.
проверьте дату и время на компьютере. Если это неправильно, обновите его до текущего времени или установите его автоматически, чтобы получить время из интернета.
поскольку сертификаты привязаны к фиксированному периоду времени, если ваши часы неверны, вы, вероятно, получите такие ошибки. В этом случае, фиксируя время, проблема будет исправлена.
добавление этой строки сработало для меня.
System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteServerCertificateValidationCallback);
это решило мою проблему
/ / со ссылкой на / / Проблема приходит только использовать выше строки, чтобы установить false SSl для решения ошибки, когда имя пользователя и пароль вводятся в настройках SMTP.
вот решение, которое я решил использовать.
Я знаю, что я довольно поздно в этой игре, но я не видел ответ здесь, направляя в систему.журналы диагностики для потока TLS.
прежде чем вносить какие-либо изменения в код, убедитесь, что вы понимаете, в чем проблема. The AuthenticationException является одним из тех очень общих исключений, которые мало что говорят. Чтобы узнать, что происходит под капотом отредактировать приложение.config для вашего приложения (или создайте новый) и убедитесь, что у вас есть System.Net источник трассировки включено в , например:
зная, что вызывает проблему, вы должны быть в состоянии решить ее или, по крайней мере, сузить поиск Google.
5 ответов
Если результаты SSL Labs вернутся как действительные, то, вероятно, на стороне клиента. Некоторое клиентское программное обеспечение не имеет встроенных доверенных корневых сертификатов, но я сомневаюсь, что Swift не использует хранилище корневых сертификатов ОС по умолчанию.
17 Янв 2017 в 09:31
18 Сен 2019 в 11:48
Решена та же проблема с автоматической установкой даты и времени на устройствах.
25 Июл 2017 в 12:42
Также проверьте ограничения вашего брандмауэра. В моем случае эта ошибка возникла из-за того, что мой брандмауэр заблокировал требуемый URL. он работал нормально после снятия ограничений брандмауэра
10 Авг 2017 в 07:56
Я только что столкнулся с этой проблемой с пользователем, и, похоже, iOS14 включает TLS1.3. Я обновил настройки ssh своего веб-сервера (я использую nginx), чтобы поддерживать эту версию, и это решило проблему. Я не уверен, что это решает проблему оператора, но может помочь человеку из будущего.
18 Дек 2020 в 02:20
2 ответа
Я наконец-то понял.
Я добавил эти строки в свой info.plist:
Я создал свой объект сеанса со следующими настройками:
let session = URLSession(configuration: URLSessionConfiguration.default, delegate: self, delegateQueue: OperationQueue.main)
И я добавил это расширение в конец своего кода:
Не забудьте удалить это в целях безопасности при развертывании приложения.
Надеюсь, я помог, это кому-то помогло. Спасибо всем за ваши предложения. Вот как сейчас выглядит мой код:
1 Дек 2019 в 14:31
Все, что вам нужно, чтобы установить это свойство в info.plist
29 Ноя 2019 в 18:20
Убираем проверку сертификата
Что делать, если проблема не во времени, а в чем-то другом? И что бы вы ни делали, сертификат сервера недействителен и в таком статусе и остается? И при этом доступ к данным следует получить срочно? Что ж, если нет времени искать истинную причину, то можно поступить просто и эффективно – всего лишь отключить проверку сертификата. Для этого необходимо перейти в настройки своего браузера, затем зайти в раздел безопасности и совершить необходимые действия (более конкретный план напрямую зависит от используемой программы). И компьютер не сможет заблокировать доступ к сайту, потому что сертификат сервера недействителен. Но совершайте данные действия относительно только тех сетевых ресурсов, которым вы доверяете.
Настройка времени
Самая популярная причина. Если на компьютере стоит неверное время или дата, то когда происходит получение всех файлов, машина видит, что параметры не совпадают, и информирует пользователя, что сертификат сервера недействителен. Это всё делается с целью обезопасить человека, который выходит в интернет, и не допустить потери важных для него данных. Исправить данную проблему очень легко – для этого достаточно всего лишь исправить время на текущие дату и час, и данной проблемы не будет. На этот случай приходится приблизительно 95% подобных происшествий.
Ошибка «Не удается проверить удостоверение сервера» в iPhone и iPad — как исправить?
Всем привет! А вот сегодня я действительно очень сильно испугался. Почему? Просто потому, что заходя на своем многострадальном iPhone в любое приложение (которое требует авторизоваться и ввести пароль) или на любую страничку в браузер, я не смог ничего сделать. Не открывались сайты, не пускало в Qiwi, интернет-банк, App Store и т.д. В зависимости от того, что использовалось на экране, появлялось окно с разными надписями.
Надо отметить, очень непонятными надписями. Некоторые из них, я, многолетний пользователь гаджетов от Apple, вообще видел впервые. Было ощущение, что «сломалось» абсолютно все и наступил какой-то локальный программный апокалипсис. Любая программа, любой сайт, любая игра отказывалась работать. Если говорить подробней, то происходило вот что.
При использовании Safari, выскакивала табличка с ошибкой:
«Не удается проверить удостоверение сервера. Safari не удается проверить удостоверение сертификата. Чтобы продолжить посмотрите подробную информацию сертификата».
И если нажать «продолжить», ничего не происходит.
При этом, если говорить о различных программах, то там тоже не всё гладко — например, Qiwi встретил меня подобным сообщением:
«Сертификат для данного сервера не действителен. Вы подключаетесь к серверу, имитирующему w.qiwi.com, что может подвергнуть риску Вашу конфиденциальную информацию».
Хотя, конечно же, ни к какому «имитирующему серверу» я точно не подключался.
Более того — я даже не знаю, что это такое!:)
Всё тоже самое.
А потом пришло озарение:)
Так что подобные проблемы с «недействительными и не проверенными сертификатами» в браузере Safari и прочих приложениях решаются достаточно просто — необходимо всего лишь установить корректную дату на iPhone или iPad (ну, и на всякий случай, перезагрузить устройство). После этой процедуры ошибки пропадут и все заработает как прежде!
Дорогие друзья! Минутка полезной информации:
1. Вступайте в группу ВК — возможно, именно там вы сможете получить всю необходимую вам помощь!
2. Иногда я занимаюсь ерундой (запускаю стрим) — играю в игрушки в прямом эфире. Приходите, буду рад общению!
3. Вы всегда можете кинуть деньги в монитор (поддержать автора). Респект таким людям!
P.S. Моя самая искренняя благодарность (карта *9644, *4550, *0524, *9328, *1619, *6732, *6299, *4889, *1072, *9808, *7501, *6056, *7251, *4949, *6339, *6715, *4037, *2227, *8877, *7872, *5193, *0061, *7354, *6622, *9273, *5012, *1962, *1687 + перевод *8953, *2735, *2760 + без реквизитов (24.10.2021 в 18.34; 10.12.2021 в 00.31)) — очень приятно!
9 ответов
- использовать NSConnection с делегатом и отмененным методом
- используйте найденный вами частный API
все нехорошо. CFNetwork пока подходит для Apple, но два других метода небезопасны даже для приложений.
Лучше почините сервер. Это самый простой и ЧИСТЫЙ
19 Янв 2014 в 03:29
Веб-сервер, который вы используете, запрашивает проверку подлинности на доверии сервера, вам необходимо правильно ответить соответствующим действием. Вам необходимо реализовать метод делегата connection:willSendRequestForAuthenticationChallenge: и использовать SecTrustRef для его аутентификации.
Mohd Iftekhar Qurashi
1 Мар 2015 в 20:42
(Как временное решение на стороне клиента!)
23 Апр 2014 в 19:41
Начните сеанс, используя настраиваемую конфигурацию сеанса, как показано ниже:
let session = URLSession(configuration: URLSessionConfiguration.ephemeral,
delegate: self,
delegateQueue: nil)
Реализуйте следующий метод обратного вызова делегата:
29 Апр 2020 в 09:08
7 Янв 2016 в 12:31
10 Авг 2017 в 07:55
Это ошибка сертификата. вам необходимо изменить настройки так, чтобы ваша программа / ОС игнорировала сертификат, или добавить URL-адрес / сертификат в список доверенных.
Извините, что это проверка подлинности, сертификат — это проверка подлинности. Я посмотрел и нашел эту статью.
Не уверен, что это решит вашу проблему, но в основном говорится, что они не охватывают случай подключения к сайту с помощью сертификата в документации.
19 Янв 2014 в 03:09
В моем случае эта ошибка возникла из-за моей системной даты. Это была старая дата, и сертификат не действует с этой старой даты. После установки даты все работает.
27 Мар 2020 в 06:18
Заключение
Почему было рассмотрено так мало причин и способов их устранения? Дело в том, что с их помощью можно решить основную массу проблем, которые возникают, когда сертификат сервера недействителен. Если они не помогли, то вам вряд ли под силу уже устранить неисправности, и тут нужна помощь специалиста.