В настоящее время у меня есть приложение xamarin forms, которое взаимодействует с веб-службой C# wcf на локальном сервере с самозаверяющим ssl-сертификатом в нашем домене.
Когда я запускаю приложение в режиме отладки на нашем IPad Air 2 (IOS 13.2) все работает нормально, но версия, которую я загрузил в AppStore, выбрасывает в журнал консоли только следующую ошибку (Open Console from Xcode):. IOS Ошибка оценки доверия: [leaf KeySize MissingIntermediate SSLHostname]. IOS (Security) Подсистема: com.apple.securityid category ie: SecError
Сертификат имеет SHA 512 и размер байта 1024. (Я сгенерировал его с помощью IIS)
В приложении я использую сервис транзакций:
myBinding = new BasicHttpsBinding();
myBinding.Security.Mode = BasicHttpsSecurityMode.Transport;
myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
myBinding.TextEncoding = System.Text.Encoding.UTF8;
myEndpoint = new EndpointAddress(url);
if (Device.RuntimePlatform == Device.iOS)
{
TransactionService s = new TransactionService(myBinding, myEndpoint);
s.ClientCredentials.UserName.UserName = VarContainer.LocalSetting.USER;
s.ClientCredentials.UserName.Password = VarContainer.LocalSetting.PASSWORD;
mainService = s;
if (getDatapools().Length == 0)
return false;
return true;
}
public string[] GetInstalledDatapools()
{
return Channel.GetInstalledDatapools();
}
public string[] GetInstalledDatapools()
{
IAsyncResult res = base.BeginInvoke("GetInstalledDatapools", new object[] { }, new AsyncCallback((callback) => { }), new object());
return (string[])base.EndInvoke("GetInstalledDatapools", new object[] { }, res);
}
Мы не планируем выводить веб-сервисы из нашего intr anet и наших клиентов.
Я уже установил сертификат на iPad, но ничего не изменилось.
Есть ли хорошее решение этой проблемы?