2016-11-04 8 views
1

Я создаю веб-приложение ASP.NET и в настоящее время запускаю его с помощью Visual Studio, встроенного в IIS Express. Обычно он запускается на localhost и работает нормально. Однако один из внешних API-интерфейсов API требует, чтобы обратный вызов моего приложения перенаправлялся на 127.0.0.1 вместо localhost (он использует поток OAuth2 для аутентификации). Я понимаю, что localhost - это просто псевдоним для 127.0.0.1, но по какой-то причине я не могу заставить свое приложение работать на 127.0.0.1.127.0.0.1 Этот сайт не может обеспечить безопасное соединение

Я пошел в настройки проекта на вкладке «Web» и изменил Start Действие> Запуск URL URL и Сервер> Project как для http://127.0.0.1:25436 и даже вошел в IIS Express на applicationhost.config и изменили привязки от этого:

<bindings> 
    <binding protocol="http" bindingInformation="*:25436:localhost" /> 
    <binding protocol="https" bindingInformation="*:44300:localhost" /> 
</bindings> 

к этому:

<bindings> 
    <binding protocol="http" bindingInformation="*:25436:127.0.0.1" /> 
    <binding protocol="https" bindingInformation="*:44300:127.0.0.1" /> 
</bindings> 

Я даже попробовал поставить IP до порта, как 127.0.0.1:25436:, как было предложено в другой статье, которую я прочитал, чтобы решить эту проблему.

Когда я начинаю проект, я получаю эту проблему: 127.0.0.1 error

Я не могу понять, как это обойти. Пожалуйста помоги!

+0

Простое изменение файлов конфигурации не поможет в HTTPS, так как это требует большего, чтобы установить его через 'netsh http'. –

+1

Не могли бы вы объяснить, как это сделать или есть слишком много? –

+0

попробуйте тот, который указан в этой ссылке https://dotnetcodr.com/2015/09/18/how-to-enable-ssl-for-a-net-project-in-visual-studio/ –

ответ

-1

Ради будущих поколений -

HTTPS на локальном компьютере требуется сертификат. Как правило, что-то называется «самоподписанным сертификатом». IIS Express обычно создает для вас первый раз, когда он установлен.

Windows Start> тип "mmc". Файл> Добавить оснастку> Сертификаты> Добавить> Учетная запись компьютера> Далее/Готово/ОК Войдите в раздел «Сертификаты»> Личные> Сертификаты Вы должны увидеть сертификат IIS Express.

Если нет, вам необходимо переустановить IIS Express, и он добавит вам новый сертификат.

Дважды щелкните сертификат IIS Express и прокрутите вниз до Thumbprint Поле. Скопируйте весь отпечаток в редактор и удалите все пробелы. (вы можете просто сделать поиск & заменить «» и заменить «») (прилагается изображение) Теперь, с CMD открытой с правами администратора, выполните это:

netsh http add sslcert ipport=0.0.0.0:44300 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} 
  • Насколько я знаете, приложение не критично.
  • Убедитесь, что вы установили правильный номер порта https.
  • Убедитесь, что вы не добавили скрытых символов, иначе это не удастся.

Теперь, в качестве последнего шага, вам необходимо перетащить этот сертификат в раздел «Доверенная корневая сертификация ...».

Выполнено.

+1

Попытка и получение «The параметр неверен. " Ответ от netsh – iamwonder

+0

Это обычно происходит, когда вы копируете и вставляете хэш-код и получаете невидимый символ. Попробуйте вставить его в блокнот или блокнот ++ и включить «Показать Юникод ...». У вас может быть небольшой персонаж, которого вам не хватает. – onearmfrog

+0

«Перетащите этот сертификат» откуда? – Sinjai

1

Я столкнулся с версией этого сегодня, и ответ, который я нашел, чтобы доказать, что он был плодотворным, закончился в https://aboutssl.org/fix-google-chrome-error-err_ssl_protocol_error/.


«Если государство SSL не очищается, он может блокировать соединение SSL и вызвать Ошибка SSL подключения. Выполните следующие действия, чтобы очистить состояние SSL.

Перейти в меню Пуск> Панель управления> Сеть и Интернет> Центр управления сетями и общим доступом Теперь нажмите «Свойства обозревателя» в нижнем левом углу. Появится новое окно «Свойства Интернета». Теперь перейдите на вкладку «Содержимое» и нажмите «Очистить состояние SSL». «Кэш SSL был успешно очищено ". Предупреждение должно быть на вашем экране.

Снова перезапустите Chrome и проверьте, нет ли еще ERR_SSL_PROTOCOL_ERROR. "