Я пытаюсь использовать веб-службы для своего приложения iOS через https. Веб-сервер использует самоподписанный сертификат.Неверная проблема с сертификатом Alamofire 4.0
При использовании веб-службы я получаю сообщение об ошибке «certificate is Invalid».
FAILURE: «, которые могли бы поставить вашу конфиденциальную информацию в опасности„Error Domain = NSURLErrorDomain Code = -1202“. Сертификат для этого сервера недействителен, Вы подключаетесь к серверу, который притворяется» Портал
Я знаю, что лучше всего исправить это на стороне сервера, чтобы включить доверенный корневой центр сертификации. Но поскольку это временная среда разработки, мы используем самоподписанный сертификат. Поскольку это проблема ATS, я отредактировал ATS в моем info.plist, как показано ниже.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>devportal</key>
<dict>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
</plist>
Как NSException домены не работают с IP и номер порта, я создал запись хоста в моей и т.д./файл хостов для IP веб-сервера и потребляющих его как https://devportal:8443/rest/login вместо того, чтобы потреблять его как https://192.22.xx.xxx:8443/rest/login
Я следил за документацией alamofire по политикам доверия сервера, редактировал ATS, чтобы разрешить области исключений, но для меня ничего не получилось. Я потратил более 3 дней на эту проблему. Я что-то упускаю? Кто-нибудь сталкивался с подобной проблемой? Есть ли решение для этого? Заранее спасибо
Я использую almofire 4.0, Xcode 8.0. Ниже мой код.
Является ли ваше тестовое устройство настроенным на доверие самозаверяющему сертификату? Это можно проверить в настройках iOS -> Общие -> Профили. –
@Rein Я не тестирую его на устройстве в этот момент, так как он не готов к тестированию. Я только что начал разработку и запускал ее на симуляторе. – CrazyDeveloper