Удаленный сертификат недопустим согласно процедуре проверки

SWIFT 3:

Если у вас есть раскадровка с идентифицированными выделениями, используйте:

func prepare(for segue: UIStoryboardSegue, sender: Any?)

Хотя, если вы все программно осуществляете навигацию между различными UIViewControllers, используйте метод:

func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool)

Примечание: чтобы использовать второй способ, которым вам нужен ваш UINavigationController, вы нажимаете UIViewControllers на, делегат, и он должен соответствовать протоколу UINavigationControllerDelegate:

   class MyNavigationController: UINavigationController, UINavigationControllerDelegate {

    override func viewDidLoad() {
        self.delegate = self
    }

    func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {

     // do what ever you need before going to the next UIViewController or back
     //this method will be always called when you are pushing or popping the ViewController

    }
}
9
задан Hudgi 10 August 2010 в 09:27
поделиться

2 ответа

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

Вы намеренно пытаетесь сделать так, чтобы клиенты аутентифицировались на сервере через SSL, или вы просто пытаетесь установить доверие своих клиентов с центром сертификации?

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

10
ответ дан 3 November 2019 в 00:57
поделиться

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

ServicePointManager.ServerCertificateValidationCallback = delegate
(object s, X509Certificate certificate, X509Chain chain,
SslPolicyErrors sslPolicyErrors) { return true; };

я надеюсь, что это помогает.

1
ответ дан 3 November 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: