Получение ошибки 107 (net::ERR_SSL_PROTOCOL_ERROR): ошибка протокола SSL
Я знаю, что в stackru есть много вопросов, связанных с теми же темами, но здесь у меня есть несколько разных проблем:
Я использовал installer class
в reserve a port
а также bind it with hash
на win7/Winxp
:
if (Environment.OSVersion.Version.Major > 5)
{
startInfo.Arguments = @"/c netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE";
netsh http add sslcert ipport=127.0.0.1:8083 certhash=df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 appid={00112233-4455-6677-8899-CCBBCCDDEEFF} clientcertnegotiation=enable;
}
else
{
startInfo.Arguments = @"/c httpcfg set urlacl /u https://127.0.0.1:8083/";
httpcfg set ssl -i 127.0.0.1:8083 -h df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 -f 2
}
Там нет ничего плохого с кодом и setup project
, Все отлично работает, кроме следующих пунктов:
- всякий раз, когда я установил
exe
наwin7
он управляетWCF
веб-сервис успешно. Всякий раз, когда я использую
WinXP(SP#)
на моей локальной машине выдает ошибку:Ошибка 107 (net::ERR_SSL_PROTOCOL_ERROR): ошибка протокола SSL
Но когда я использую teamviewer для входа в любой
WinXp
виртуальная машина, она успешно работает.
Как это возможно, я пробовал это несколько раз, но получил тот же результат. Он работает на Xp(на виртуальной машине), но не на реальной машине XP?
Я написал что-то неправильно, чтобы связать и зарезервировать порт? Брандмауэр играет здесь какую-то роль?
Я также подтвердил это httpcfg query ssl
и хеш был успешно связан с портом.
Любая помощь будет ощутимой.
ИМО эта команда не работает:netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE
Я пытался выяснить ошибку с fiddler
и это говорит:
"Failed to secure existing conection for <ipaddress>. Authentication failed because the remote party has closed the transport stream."
3 ответа
Конфигурация локальной машины XP, вероятно, отличается от конфигурации виртуальной. Один из сценариев, который я могу придумать, заключается в том, что ИТ-отдел настроил бы компьютер XP одним способом, а затем вы сами создадите виртуальную машину, она просто использует настройки по умолчанию (которые отличаются). Я не говорю, что это именно ваш сценарий, просто сценарий. Другая причина заключается в том, что машина устарела / не обновлена, что не является проблемой конфигурации, а связано с наличием ошибок.
В любом случае, я бы сказал, что ваша установка XP неправильно определяет, что сертификат недействителен, что характерно для виртуальной машины, которой она не обладает. Ваш комментарий о настройках брандмауэра также может быть точным - попробуйте Google.
Удачи!
Сделайте следующее SetUp berfoe, позвонив в службу WCF
ServicePointManager.ServerCertificateValidationCallback =
delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
для получения дополнительной информации обратитесь к: Использование самоподписанного сертификата с.NET HttpWebRequest/Response
Это может выглядеть глупо, но некоторые приложения могут использовать порты SSL, такие как Team Viewer или даже Skype. Попробуйте закрыть эти приложения на случай, если некоторые из них запущены на вашем компьютере!
Извините, это всего лишь предположение:) но я надеюсь, что это поможет...