Я пытаюсь портировать существующее клиентское приложение WCF для работы Linux под Моно. Прямо сейчас я проверяю все, выясняя то, что продолжает работать Моно и что не делает.
Клиент выполняет супер простой вызов по basicHttpBinding. Это работает отлично, пока я не включаю SSL (то есть, укажите BasicHttpSecurityMode. Транспорт в привязке).
Исключение в асинхронной операции: Система. Сеть. WebException: Ошибка, получающая ответный поток (Запись: аутентификация или дешифрование перестали работать.): SendFailure---> Система. IO.IOException: аутентификация или дешифрование перестали работать.---> Моно. Безопасность. Протокол. Tls. TlsException: Недопустимый сертификат получен от сервера. Код ошибки: 0xffffffff800b010a
Я считал Моно безопасность FAQ; однако сертификат SSL на сервере от корневого CA (купленный сертификат) - выпущен Equifax Безопасный Центр сертификации. Я выполнил инструмент TlsTest на установке Ubuntu против .svc URL и нет никаких проблем/ошибок. Также я могу поразить сервис, прекрасный в Firefox (никакие предупреждения системы безопасности).
Что я пропускаю?
Файл TlsTest от Mono действительно хорош для проверки этого, поэтому кажется немного глупым даже спросить - но: Можете ли вы использовать WebClient, чтобы сделать запрос к файлу .svc и получить ответ? В противном случае, вероятно, по какой-то причине проблемы с сертификатом все еще существуют.
Я также предполагаю, что вы использовали инструменты mozroots или certmgr для проверки наличия корневого ЦС? Как насчет явного добавления сертификата на вашем сайте в магазин через certmgr?
Еще одно напоминание: инструмент certmgr обычно работает с копией сертификатов для текущего пользователя, вам нужно указать аргумент - machine
, чтобы все пользователи получили сертификат.