Visual studio отключить ssl
Это то, что я вижу в Chrome:
Невозможно сделать безопасное подключение к серверу. Это может быть проблемой с сервером или может потребоваться сертификат проверки подлинности клиента, которого у вас нет.
Код ошибки: ERR_SSL_PROTOCOL_ERROR
Соединение с localhost было прервано.
Код ошибки: ERR_CONNECTION_RESET
Я получал ERR_CONNECTION_RESET, потому что мое настроенное приложение Visual Studio 2013/IIS Express номер порта не было в диапазоне : 44300-: 44398. (Я не помню, чтобы увольнять любые предупреждения, чтобы выйти из этого диапазона.) Изменение номера порта на что-то в этом диапазоне – это все, что я должен был сделать, чтобы он работал.
Обязательно удалите все предыдущие сертификаты “localhost” , поскольку они могут конфликтовать с тем, который был создан IIS Express. У меня была такая же ошибка (ERR_SSL_PROTOCOL_ERROR), и мне потребовалось много часов, чтобы, наконец, понять ее, опробовав множество “решений”. Моя ошибка заключалась в том, что я создал свой собственный сертификат localhost, и их было два. Мне пришлось удалить оба и обновить IIS Express.
Вот как вы можете проверить и удалить сертификат “localhost” :
- В поле “Пуск” введите → mmc.exe
- Файл → Добавить/удалить оснастку…
- Выберите Сертификаты → Добавить > → Учетная запись компьютера → Локальный компьютер
- Проверить сертификаты > Личные > Сертификаты
- Убедитесь, что существующий сертификат localhost имеет дружественное имя “Сертификат развития IIS Express”. Если нет, удалите его. Или если несколько, удалите все.
В Visual Studio выберите вкладку “Проект” и “Свойства”, включите SSL = true. Сохранить, построить и запустить. IIS Express создаст новый сертификат “localhost” .
Примечание. Если это не сработает, попробуйте выполнить следующие действия: обязательно отключите IIS Express в проекте VS и остановите все запущенное приложение до удаления сертификата localhost. Кроме того, вы можете перейти в “панель управления > программы” и “Восстановить IIS Express”.
Я суммирую шаги, которые помогли мне решить эту проблему:
- Убедитесь, что диапазон портов SSL (используемый IIS express) находится между 44300-44398
- Запустите приведенную ниже команду от имени администратора в командной строке. Это выведет привязки SSL-сертификатов на компьютер. Из этого списка найдите сертификат, используемый IIS express для соответствующего порта:
- Найдите следующие элементы в файле sslcert.txt (в моем случае IIS Express работал на порту 44300)
IP: порт: 0.0.0.0:44300
Хэш сертификата: eb380ba6bd10fb4f597cXXXXXXXXXX
Идентификатор приложения:
- Также загляните в консоль управления IIS Express (RUN (Ctrl + R) → inetmgr.exe) и найдите, существует ли соответствующий сертификат в сертификатах сервера.
(Нажмите на ServerRoot → в разделе IIS() → Открыть сертификаты сервера)
- Если ваш локальный хост по умолчанию использует другой сертификат, отличный от сертификата, указанного в шаге 3, перейдите к следующим шагам
New_Certificate_Hash будет вашим сертификатом по умолчанию, связанным с вашим локальным хостом (который мы нашли в шаге 4) или тот, который вы хотите добавить в качестве нового сертификата.
PS Спасибо за ваш ответ uosɐſ (который помог мне в решении этой проблемы)
Ни один из вышеперечисленных вариантов не работал у меня. Я должен был сделать следующее:
- Удаленный IIS Express 8.0
- Удалены все конфигурации в папке “Мои документы” для IIS Express
- Переустановка IIS Express 8.0
- Удалил проект на моем локальном компьютере и загрузил чистую версию для TFS
- Запустите проект – он перешел через SSL, и я могу отлаживать
Надеюсь, это поможет.
В моем случае я создал самозаверяющий сертификат и имел его работу, за исключением того, что я получал ошибку в браузере, потому что сертификат был ненадежным. Итак, я переместил сертификат в папку “Проверенные корневые центры сертификации” > “Сертификаты” в snapin сертификатов. Это сработало, а затем я закрыл Visual Studio в течение дня.
Не желая суетиться с перетаскиванием сертификата назад и вперед каждый раз, я просто помещаю копию сертификата в оба места, и теперь все работает нормально.
У меня такая же проблема в Visual Studio 2015. Поскольку я использую SSL-привязку в web.config
в мой web.config, поэтому мой код
Другая проблема, которая произошла со мной дважды:
В IIS Express applicationhost.config порядок привязок имеет значение. Одно связывание может иметь приоритет над связыванием SSL, что делает его неработоспособным.
Возможно, вы добавили привязку, аналогичную второй, чтобы иметь доступ к вашему WebService извне localhost . Поскольку это связывание прослушивается на любом адресе, оно, похоже, отменяет привязку SSL, хотя использовался другой порт.
Удалите злую привязанность или переместите ее вниз.
Мне удалось проверить, что попытка SSL-сертификата была той, которую я ожидал, сравнивая серийный номер.
Для меня ответ Джейсона Клебана был реальной проблемой, но это может быть очень полезной утилитой для проверки ваших основных утверждений о том, какой сертификат загружается.
Удаление IISExpress и vs каталогов и использование диапазона портов ssl от 44300 до 44399 (включительно) из этой статьи работало для меня
Если вам нужно использовать порт за пределами диапазона 44300-44399, вот обходной путь:
Это регистрирует сертификат IIS Express Development с этим портом и является самым простым способом обойти требования диапазона 44300-44399.
No API can prevent a client from sending sensitive data on the first request.
API projects
HSTS and API projects
The preceding highlighted code:
We recommend using temporary redirects rather than permanent redirects. Link caching can cause unstable behavior in development environments. If you prefer to send a permanent redirect status code when the app is in a non-Development environment, see the Configure permanent redirects in production section. We recommend using HSTS to signal to clients that only secure resource requests should be sent to the app (only in production).
Port configuration
- Redirection to HTTPS doesn't occur.
- The middleware logs the warning "Failed to determine the https port for redirect."
In host configuration.
By adding a top-level entry in appsettings.json :
When an app is run in a reverse proxy configuration, IServerAddressesFeature isn't available. Set the port using one of the other approaches described in this section.
Edge deployments
- The secure port where the client is redirected (typically, 443 in production and 5001 in development).
- The insecure port (typically, 80 in production and 5000 in development).
The insecure port must be accessible by the client in order for the app to receive an insecure request and redirect the client to the secure port.
Deployment scenarios
Any firewall between the client and server must also have communication ports open for traffic.
When deploying to Azure App Service, follow the guidance in Tutorial: Bind an existing custom SSL certificate to Azure Web Apps.
Options
The preceding highlighted code:
Configure permanent redirects in production
The middleware defaults to sending a Status307TemporaryRedirect with all redirects. If you prefer to send a permanent redirect status code when the app is in a non-Development environment, wrap the middleware options configuration in a conditional check for a non-Development environment.
When configuring services in Program.cs :
Because HSTS is enforced by the client, it has some limitations:
UseHsts isn't recommended in development because the HSTS settings are highly cacheable by browsers. By default, UseHsts excludes the local loopback address.
The following highlighted code:
UseHsts excludes the following loopback hosts:
- localhost : The IPv4 loopback address.
- 127.0.0.1 : The IPv4 loopback address.
- [::1] : The IPv6 loopback address.
For the Firefox browser, see the next section.
The following command provides help on the dev-certs tool:
The Firefox browser uses its own certificate store, and therefore doesn't trust the IIS Express or Kestrel developer certificates.
Create a policy file at:
- Windows: %PROGRAMFILES%\Mozilla Firefox\distribution\policies.json
- MacOS: Firefox.app/Contents/Resources/distribution
- Linux: See Trust the certificate with Firefox on Linux in this document.
Add the following JSON to the Firefox policy file:
The preceding policy file makes Firefox trust certificates from the trusted certificates in the Windows certificate store. The next section provides an alternative approach to create the preceding policy file by using the Firefox browser.
Set security.enterprise_roots.enabled = true using the following instructions:
- Enter about:config in the FireFox browser.
- Select Accept the Risk and Continue if you accept the risk.
- Select Show All
- Set security.enterprise_roots.enabled = true
- Exit and restart Firefox
How to set up a developer certificate for Docker
Establishing trust is distribution and browser specific. The following sections provide instructions for some popular distributions and the Chromium browsers (Edge and Chrome) and for Firefox.
Ubuntu trust the certificate for service-to-service communication
Install OpenSSL 1.1.1h or later. See your distribution for instructions on how to update OpenSSL.
Run the following commands:
The preceding commands:
- Ensure the current user's developer certificate is created.
- Exports the certificate with elevated permissions needed for the ca-certificates folder, using the current user's environment.
- Removing the -E flag exports the root user certificate, generating it if necessary. Each newly generated certificate has a different thumbprint. When running as root, sudo and -E are not needed.
The path in the preceding command is specific for Ubuntu. For other distributions, select an appropriate path or use the path for the Certificate Authorities (CAs).
For chromium browsers on Linux:
Install the libnss3-tools for your distribution.
Create or verify the $HOME/.pki/nssdb folder exists on the machine.
Export the certificate with the following command:
The path in the preceding command is specific for Ubuntu. For other distributions, select an appropriate path or use the path for the Certificate Authorities (CAs).
Run the following commands:
Exit and restart the browser.
Trust the certificate with Firefox on Linux
Export the certificate with the following command:
The path in the preceding command is specific for Ubuntu. For other distributions, select an appropriate path or use the path for the Certificate Authorities (CAs).
Create a JSON file at /usr/lib/firefox/distribution/policies.json with the following contents:
Trust the certificate with Fedora 34
Trust the certificate with other distros
Export the developer certificate to a file on Windows:
Where $CREDENTIAL_PLACEHOLDER$ is a password.
In a WSL window, import the exported certificate on the WSL instance:
The preceding approach is a one time operation per certificate and per WSL distribution. It's easier than exporting the certificate over and over. If you update or regenerate the certificate on windows, you might need to run the preceding commands again.
Troubleshoot certificate problems such as certificate not trusted
To repair the IIS Express certificate, see this Stackoverflow issue.
All platforms - certificate not trusted
Run the following commands:
Close any browser instances open. Open a new browser window to app. Certificate trust is cached by browsers.
The preceding commands solve most browser trust issues. If the browser is still not trusting the certificate, follow the platform-specific suggestions that follow.
Docker - certificate not trusted
Windows - certificate not trusted
Close any browser instances open. Open a new browser window to app.
OS X - certificate not trusted
- Open KeyChain Access.
- Select the System keychain.
- Check for the presence of a localhost certificate.
- Check that it contains a + symbol on the icon to indicate it's trusted for all users.
- Remove the certificate from the system keychain.
- Run the following commands:
Close any browser instances open. Open a new browser window to app.
Linux certificate not trusted
If the certificate doesn't match, it could be one of the following:
- An old certificate.
- An exported a developer certificate for the root user. For this case, export the certificate.
The root user certificate can be checked at:
IIS Express SSL certificate used with Visual Studio
To fix problems with the IIS Express certificate, select Repair from the Visual Studio installer. For more information, see this GitHub issue.
Group policy prevents self-signed certificates from being trusted
In some cases, group policy may prevent self-signed certificates from being trusted. For more information, see this GitHub issue.
Additional information
API projects
HSTS and API projects
The preceding highlighted code:
We recommend using temporary redirects rather than permanent redirects. Link caching can cause unstable behavior in development environments. If you prefer to send a permanent redirect status code when the app is in a non-Development environment, see the Configure permanent redirects in production section. We recommend using HSTS to signal to clients that only secure resource requests should be sent to the app (only in production).
Port configuration
- Redirection to HTTPS doesn't occur.
- The middleware logs the warning "Failed to determine the https port for redirect."
In host configuration.
By adding a top-level entry in appsettings.json :
When an app is run in a reverse proxy configuration, IServerAddressesFeature isn't available. Set the port using one of the other approaches described in this section.
Edge deployments
- The secure port where the client is redirected (typically, 443 in production and 5001 in development).
- The insecure port (typically, 80 in production and 5000 in development).
The insecure port must be accessible by the client in order for the app to receive an insecure request and redirect the client to the secure port.
Deployment scenarios
Any firewall between the client and server must also have communication ports open for traffic.
When deploying to Azure App Service, follow the guidance in Tutorial: Bind an existing custom SSL certificate to Azure Web Apps.
Options
The preceding highlighted code:
Configure permanent redirects in production
The middleware defaults to sending a Status307TemporaryRedirect with all redirects. If you prefer to send a permanent redirect status code when the app is in a non-Development environment, wrap the middleware options configuration in a conditional check for a non-Development environment.
When configuring services in Startup.cs :
Because HSTS is enforced by the client, it has some limitations:
UseHsts isn't recommended in development because the HSTS settings are highly cacheable by browsers. By default, UseHsts excludes the local loopback address.
The following code:
UseHsts excludes the following loopback hosts:
- localhost : The IPv4 loopback address.
- 127.0.0.1 : The IPv4 loopback address.
- [::1] : The IPv6 loopback address.
For the Firefox browser, see the next section.
The following command provides help on the dev-certs tool:
The Firefox browser uses its own certificate store, and therefore doesn't trust the IIS Express or Kestrel developer certificates.
Create a policy file at:
- Windows: %PROGRAMFILES%\Mozilla Firefox\distribution\policies.json
- MacOS: Firefox.app/Contents/Resources/distribution
- Linux: See Trust the certificate with Firefox on Linux in this document.
Add the following JSON to the Firefox policy file:
The preceding policy file makes Firefox trust certificates from the trusted certificates in the Windows certificate store. The next section provides an alternative approach to create the preceding policy file by using the Firefox browser.
Set security.enterprise_roots.enabled = true using the following instructions:
- Enter about:config in the FireFox browser.
- Select Accept the Risk and Continue if you accept the risk.
- Select Show All
- Set security.enterprise_roots.enabled = true
- Exit and restart Firefox
How to set up a developer certificate for Docker
Establishing trust is distribution and browser specific. The following sections provide instructions for some popular distributions and the Chromium browsers (Edge and Chrome) and for Firefox.
Ubuntu trust the certificate for service-to-service communication
Install OpenSSL 1.1.1h or later. See your distribution for instructions on how to update OpenSSL.
Run the following commands:
The preceding commands:
- Ensure the current user's developer certificate is created.
- Exports the certificate with elevated permissions needed for the ca-certificates folder, using the current user's environment.
- Removing the -E flag exports the root user certificate, generating it if necessary. Each newly generated certificate has a different thumbprint. When running as root, sudo and -E are not needed.
The path in the preceding command is specific for Ubuntu. For other distributions, select an appropriate path or use the path for the Certificate Authorities (CAs).
For chromium browsers on Linux:
Install the libnss3-tools for your distribution.
Create or verify the $HOME/.pki/nssdb folder exists on the machine.
Export the certificate with the following command:
The path in the preceding command is specific for Ubuntu. For other distributions, select an appropriate path or use the path for the Certificate Authorities (CAs).
Run the following commands:
Exit and restart the browser.
Trust the certificate with Firefox on Linux
Export the certificate with the following command:
The path in the preceding command is specific for Ubuntu. For other distributions, select an appropriate path or use the path for the Certificate Authorities (CAs).
Create a JSON file at /usr/lib/firefox/distribution/policies.json with the following contents:
Trust the certificate with Fedora 34
Firefox on Fedora
Trust dotnet-to-dotnet on Fedora
See this GitHub comment for more information.
Trust the certificate with other distros
Export the developer certificate to a file on Windows:
Where $CREDENTIAL_PLACEHOLDER$ is a password.
In a WSL window, import the exported certificate on the WSL instance:
The preceding approach is a one time operation per certificate and per WSL distribution. It's easier than exporting the certificate over and over. If you update or regenerate the certificate on windows, you might need to run the preceding commands again.
Troubleshoot certificate problems such as certificate not trusted
To repair the IIS Express certificate, see this Stackoverflow issue.
All platforms - certificate not trusted
Run the following commands:
Close any browser instances open. Open a new browser window to app. Certificate trust is cached by browsers.
The preceding commands solve most browser trust issues. If the browser is still not trusting the certificate, follow the platform-specific suggestions that follow.
Docker - certificate not trusted
Windows - certificate not trusted
Close any browser instances open. Open a new browser window to app.
OS X - certificate not trusted
- Open KeyChain Access.
- Select the System keychain.
- Check for the presence of a localhost certificate.
- Check that it contains a + symbol on the icon to indicate it's trusted for all users.
- Remove the certificate from the system keychain.
- Run the following commands:
Close any browser instances open. Open a new browser window to app.
Linux certificate not trusted
If the certificate doesn't match, it could be one of the following:
- An old certificate.
- An exported a developer certificate for the root user. For this case, export the certificate.
The root user certificate can be checked at:
IIS Express SSL certificate used with Visual Studio
To fix problems with the IIS Express certificate, select Repair from the Visual Studio installer. For more information, see this GitHub issue.
Включение SSL на сервере
Чтобы настроить SSL в IIS 7 или более поздней версии, выполните указанные ниже действия.
Дополнительные сведения см. в разделе "Настройка SSL" в IIS 7.
Информация о работе с SSL в веб-интерфейсе API
Добавьте этот фильтр в любое действие веб-интерфейса API, для которого требуется SSL:
Сертификаты SSL-клиента
SSL обеспечивает проверку подлинности с помощью сертификатов инфраструктуры открытых ключей. Сервер должен предоставить сертификат, который проверяет подлинность сервера на клиенте. Клиент реже предоставляет сертификат серверу, но это один из вариантов проверки подлинности клиентов. Чтобы использовать сертификаты клиента с SSL, вам потребуется способ распространения подписанных сертификатов пользователям. Для многих типов приложений это не будет хорошим взаимодействием с пользователем, но в некоторых средах (например, enterprise) это может оказаться возможным.
Чтобы настроить IIS для приема сертификатов клиента, откройте диспетчер IIS и выполните следующие действия:
Щелкните узел сайта в представлении дерева.
Дважды щелкните функцию SSL-Параметры на средней панели.
В разделе "Сертификаты клиента" выберите один из следующих вариантов:
- Принять: IIS примет сертификат от клиента, но не требует его.
- Требовать: требовать сертификат клиента. (Чтобы включить этот параметр, необходимо также выбрать "Требовать SSL")
Эти параметры также можно задать в файле ApplicationHost.config:
Флаг SslNegotiateCert означает, что службы IIS будут принимать сертификат от клиента, но не требует его (эквивалент параметра Accept в диспетчере IIS). Чтобы потребовать сертификат, задайте флаг SslRequireCert . Для тестирования эти параметры можно также задать в IIS Express в локальном файле applicationhost.Config, расположенном в папке Documents\IISExpress\config.
Создание сертификата клиента для тестирования
В целях тестирования можно использовать MakeCert.exe для создания сертификата клиента. Сначала создайте корневой центр тестирования:
Makecert предложит ввести пароль для закрытого ключа.
Затем добавьте сертификат в хранилище доверенных корневых центров сертификации сервера тестирования следующим образом:
Теперь создайте сертификат клиента, подписанный первым сертификатом:
Использование сертификатов клиента в веб-API
Ни один API не может запретить клиенту отправлять конфиденциальные данные по первому запросу.
Проекты API
Чтобы отключить перенаправление HTTP в API, задайте ASPNETCORE_URLS переменную среды или используйте флаг командной --urls строки. Дополнительные сведения см. в статье "Использование нескольких сред в ASP.NET Core и 5 способах задания URL-адресов для приложения ASP.NET Core Эндрю Lock".
Проекты HSTS и API
Приведенный выше выделенный код:
Рекомендуется использовать временные перенаправления, а не постоянные перенаправления. Кэширование ссылок может привести к нестабильной работе в средах разработки. Если вы предпочитаете отправлять код состояния постоянного перенаправления, если приложение находится в среде, отличной от разработки, см. раздел "Настройка постоянных перенаправлений в рабочей среде ". Мы рекомендуем использовать HSTS для сигнализации клиентам о том, что в приложение должны отправляться только защищенные запросы ресурсов (только в рабочей среде).
Конфигурация порта
- Перенаправление на HTTPS не происходит.
- ПО промежуточного слоя записывает предупреждение "Не удалось определить порт HTTPS для перенаправления".
В конфигурации узла.
Путем добавления записи верхнего уровня в appsettings.json :
Если приложение выполняется в конфигурации обратного прокси-сервера, IServerAddressesFeature недоступно. Задайте порт с помощью одного из других подходов, описанных в этом разделе.
Развертывания Edge
- Безопасный порт, на котором перенаправляется клиент (как правило, 443 в рабочей среде и 5001 в разработке).
- Небезопасный порт (как правило, 80 в рабочей среде и 5000 в разработке).
Небезопасный порт должен быть доступен клиентом, чтобы приложение получало небезопасный запрос и перенаправляло клиент на безопасный порт.
Сценарии развертывания
Любой брандмауэр между клиентом и сервером также должен иметь порты связи, открытые для трафика.
Параметры
Приведенный выше выделенный код:
Настройка постоянных перенаправлений в рабочей среде
ПО промежуточного слоя по умолчанию отправляет все Status307TemporaryRedirect перенаправления. Если вы предпочитаете отправлять код состояния постоянного перенаправления, если приложение находится в среде, отличной от разработки, заключите конфигурацию параметров ПО промежуточного слоя в условную проверку для среды, отличной от разработки.
При настройке служб в Program.cs :
Так как HSTS применяется клиентом, он имеет некоторые ограничения:
UseHsts не рекомендуется при разработке, так как параметры HSTS очень кэшируются браузерами. По умолчанию UseHsts исключает локальный адрес замыкания на себя.
Следующий выделенный код:
UseHsts исключает следующие узлы замыкания на себя:
- localhost : IPv4-адрес замыкания на себя.
- 127.0.0.1 : IPv4-адрес замыкания на себя.
- [::1] : IPv6-адрес замыкания на себя.
Снимите флажок "Настроить для HTTPS ".
В браузере Firefox см. следующий раздел.
Следующая команда вызывает справку по средству dev-certs .
Браузер Firefox использует собственное хранилище сертификатов и поэтому не доверяет сертификатам IIS Express или Kestrel разработчика.
Создайте файл политики по адресу:
- Windows: %PROGRAMFILES%\Mozilla Firefox\distribution\policies.json
- MacOS: Firefox.app/Contents/Resources/distribution
- Linux: см. сведения о доверии сертификату с помощью Firefox в Linux в этом документе.
Добавьте следующий код JSON в файл политики Firefox:
Приведенный выше файл политики делает сертификаты доверия Firefox из доверенных сертификатов в хранилище сертификатов Windows. В следующем разделе представлен альтернативный подход к созданию предыдущего файла политики с помощью браузера Firefox.
Настройте security.enterprise_roots.enabled = true с помощью следующих инструкций:
- Введите about:config в браузере FireFox.
- Если вы принимаете риск, нажмите кнопку "Принять риск" и "Продолжить ".
- Выбор "Показать все"
- Установить security.enterprise_roots.enabled = true
- Выход и перезапуск Firefox
Настройка сертификата разработчика для Docker
Установка доверия зависит от распространения и браузера. В следующих разделах приведены инструкции по некоторым популярным дистрибутивам и браузерам Chromium (Edge и Chrome) и Firefox.
Ubuntu доверяет сертификату для обмена данными между службами
Установите OpenSSL 1.1.1h или более поздней версии. Инструкции по обновлению OpenSSL см. в дистрибутиве.
Выполните следующие команды:
- Убедитесь, что сертификат разработчика текущего пользователя создан.
- Экспортирует сертификат с повышенными разрешениями, необходимыми для ca-certificates папки, с помощью среды текущего пользователя.
- Удаление флага -E экспортирует корневой сертификат пользователя, создав его при необходимости. Каждый созданный сертификат имеет другой отпечаток. При запуске в качестве корневого каталога sudo и -E не требуется.
Путь в предыдущей команде предназначен для Ubuntu. Для других дистрибутивов выберите соответствующий путь или используйте путь для центров сертификации (ЦС).
Для браузеров chromium в Linux:
libnss3-tools Установите дистрибутив.
Создайте или убедитесь, что $HOME/.pki/nssdb папка существует на компьютере.
Экспортируйте сертификат с помощью следующей команды:
Путь в предыдущей команде предназначен для Ubuntu. Для других дистрибутивов выберите соответствующий путь или используйте путь для центров сертификации (ЦС).
Выполните следующие команды:
Закройте и перезапустите браузер.
Доверие сертификату с помощью Firefox в Linux
Экспортируйте сертификат с помощью следующей команды:
Путь в предыдущей команде предназначен для Ubuntu. Для других дистрибутивов выберите соответствующий путь или используйте путь для центров сертификации (ЦС).
Создайте JSON-файл /usr/lib/firefox/distribution/policies.json со следующим содержимым:
Доверять сертификату с помощью Fedora 34
Доверие сертификату с другими дистрибутивами
Экспортируйте сертификат разработчика в файл на Windows:
Где $CREDENTIAL_PLACEHOLDER$ находится пароль.
В окне WSL импортируйте экспортируемый сертификат в экземпляр WSL:
Предыдущий подход представляет собой одну операцию для каждого сертификата и распределения WSL. Проще экспортировать сертификат снова и снова. При обновлении или повторном создании сертификата в Windows может потребоваться снова выполнить приведенные выше команды.
Устранение неполадок с сертификатами, таких как сертификат не является доверенным
Сведения о восстановлении сертификата IIS Express см. в этой проблеме Stackoverflow.
Все платформы — сертификат не является доверенным
Выполните следующие команды:
Закройте все открытые экземпляры браузера. Откройте новое окно браузера для приложения. Доверие сертификатов кэшируется браузерами.
Приведенные выше команды решают большинство проблем с доверием в браузере. Если браузер по-прежнему не доверяет сертификату, следуйте приведенным ниже рекомендациям для конкретной платформы.
Docker — сертификат не является доверенным
Windows — сертификат не является доверенным
Закройте все открытые экземпляры браузера. Откройте новое окно браузера для приложения.
OS X — сертификат не является доверенным
- Откройте доступ к цепочке ключей.
- Выберите цепочку ключей системы.
- Проверьте наличие сертификата localhost.
- Убедитесь, что он содержит + символ на значке, чтобы указать, что он является доверенным для всех пользователей.
- Удалите сертификат из цепочки ключей системы.
- Выполните следующие команды:
Закройте все открытые экземпляры браузера. Откройте новое окно браузера для приложения.
Сертификат Linux не является доверенным
Если сертификат не совпадает, это может быть один из следующих вариантов:
- Старый сертификат.
- Экспортирован сертификат разработчика для корневого пользователя. В этом случае экспортируйте сертификат.
Сертификат корневого пользователя можно проверить по адресу:
IIS Express SSL-сертификат, используемый с Visual Studio
Чтобы устранить проблемы с сертификатом IIS Express, выберите "Восстановить" в установщике Visual Studio. Дополнительные сведения см. в этой статье об ошибке на GitHub.
Групповая политика предотвращает доверие самозаверяющего сертификата
В некоторых случаях групповая политика может препятствовать доверию самозаверяющего сертификата. Дополнительные сведения см. в этой статье об ошибке на GitHub.
Дополнительные сведения
Проекты API
Чтобы отключить перенаправление HTTP в API, задайте ASPNETCORE_URLS переменную среды или используйте флаг командной --urls строки. Дополнительные сведения см. в разделе "Использование нескольких сред в ASP.NET Core и 5 способах задания URL-адресов для приложения ASP.NET Core Эндрю Lock".
Проекты HSTS и API
Приведенный выше выделенный код:
Рекомендуется использовать временные перенаправления, а не постоянные перенаправления. Кэширование ссылок может привести к нестабильной работе в средах разработки. Если вы предпочитаете отправлять код состояния постоянного перенаправления, если приложение находится в среде, отличной от разработки, см. раздел "Настройка постоянных перенаправлений в рабочей среде ". Мы рекомендуем использовать HSTS для сигнализации клиентам о том, что в приложение должны отправляться только защищенные запросы ресурсов (только в рабочей среде).
Конфигурация порта
- Перенаправление на HTTPS не происходит.
- ПО промежуточного слоя записывает предупреждение "Не удалось определить порт HTTPS для перенаправления".
В конфигурации узла.
Путем добавления записи верхнего уровня в appsettings.json :
Если приложение выполняется в конфигурации обратного прокси-сервера, IServerAddressesFeature недоступно. Задайте порт с помощью одного из других подходов, описанных в этом разделе.
Развертывания Edge
- Безопасный порт, на котором перенаправляется клиент (как правило, 443 в рабочей среде и 5001 в разработке).
- Небезопасный порт (как правило, 80 в рабочей среде и 5000 в разработке).
Небезопасный порт должен быть доступен клиентом, чтобы приложение получало небезопасный запрос и перенаправляло клиент на безопасный порт.
Сценарии развертывания
Любой брандмауэр между клиентом и сервером также должен иметь порты связи, открытые для трафика.
Параметры
Приведенный выше выделенный код:
Настройка постоянных перенаправлений в рабочей среде
ПО промежуточного слоя по умолчанию отправляет все Status307TemporaryRedirect перенаправления. Если вы предпочитаете отправлять код состояния постоянного перенаправления, если приложение находится в среде, отличной от разработки, заключите конфигурацию параметров ПО промежуточного слоя в условную проверку для среды, отличной от разработки.
При настройке служб в Startup.cs :
Так как HSTS применяется клиентом, он имеет некоторые ограничения:
UseHsts не рекомендуется при разработке, так как параметры HSTS очень кэшируются браузерами. По умолчанию UseHsts исключает локальный адрес замыкания на себя.
В приведенном ниже коде
UseHsts исключает следующие узлы замыкания на себя:
- localhost : IPv4-адрес замыкания на себя.
- 127.0.0.1 : IPv4-адрес замыкания на себя.
- [::1] : IPv6-адрес замыкания на себя.
Снимите флажок "Настроить для HTTPS ".
В браузере Firefox см. следующий раздел.
Следующая команда вызывает справку по средству dev-certs .
Браузер Firefox использует собственное хранилище сертификатов и, следовательно, не доверяет IIS Express или Kestrel сертификатам разработчика.
Создайте файл политики по адресу:
- Windows: %PROGRAMFILES%\Mozilla Firefox\distribution\policies.json
- MacOS: Firefox.app/Contents/Resources/distribution
- Linux: см. сведения о доверии сертификату с помощью Firefox в Linux в этом документе.
Добавьте следующий код JSON в файл политики Firefox:
Приведенный выше файл политики делает сертификаты доверия Firefox из доверенных сертификатов в хранилище сертификатов Windows. В следующем разделе представлен альтернативный подход к созданию предыдущего файла политики с помощью браузера Firefox.
Задайте следующие security.enterprise_roots.enabled = true инструкции:
- Введите about:config в браузере FireFox.
- Выберите "Принять риск" и "Продолжить ", если вы принимаете риск.
- Выберите "Показать все"
- Установить security.enterprise_roots.enabled = true
- Выход и перезапуск Firefox
Настройка сертификата разработчика для Docker
Установление доверия — это распределение и браузер. В следующих разделах приведены инструкции по некоторым популярным дистрибутивам и браузерам Chromium (Edge и Chrome) и Firefox.
Ubuntu доверяет сертификату для обмена данными между службами
Установите OpenSSL 1.1.1h или более поздней версии. Инструкции по обновлению OpenSSL см. в дистрибутиве.
Выполните следующие команды:
- Убедитесь, что сертификат разработчика текущего пользователя создан.
- Экспортирует сертификат с повышенными разрешениями, необходимыми для ca-certificates папки, с помощью среды текущего пользователя.
- Удаление флага -E экспортирует корневой сертификат пользователя, создав его при необходимости. Каждый созданный сертификат имеет разные отпечатки. При выполнении в качестве корневого sudo каталога и -E не требуется.
Путь в предыдущей команде предназначен для Ubuntu. Для других дистрибутивов выберите соответствующий путь или используйте путь для центров сертификации (ЦС).
Для браузеров chromium в Linux:
libnss3-tools Установите дистрибутив.
Создайте или убедитесь, что $HOME/.pki/nssdb папка существует на компьютере.
Экспортируйте сертификат с помощью следующей команды:
Путь в предыдущей команде предназначен для Ubuntu. Для других дистрибутивов выберите соответствующий путь или используйте путь для центров сертификации (ЦС).
Выполните следующие команды:
Закройте и перезапустите браузер.
Доверие сертификату с помощью Firefox в Linux
Экспортируйте сертификат с помощью следующей команды:
Путь в предыдущей команде предназначен для Ubuntu. Для других дистрибутивов выберите соответствующий путь или используйте путь для центров сертификации (ЦС).
Создайте JSON-файл /usr/lib/firefox/distribution/policies.json со следующим содержимым:
Доверять сертификату с помощью Fedora 34
Firefox на Fedora
Доверие dotnet-to-dotnet в Fedora
Доверие сертификату с другими дистрибутивами
Экспортируйте сертификат разработчика в файл на Windows:
Где $CREDENTIAL_PLACEHOLDER$ находится пароль.
В окне WSL импортируйте экспортируемый сертификат в экземпляр WSL:
Предыдущий подход представляет собой одну операцию для каждого сертификата и распределения WSL. Проще экспортировать сертификат снова и снова. При обновлении или повторном создании сертификата в Windows может потребоваться снова выполнить приведенные выше команды.
Устранение неполадок с сертификатами, таких как сертификат не является доверенным
Сведения о восстановлении сертификата IIS Express см. в этой проблеме Stackoverflow.
Все платформы — сертификат не является доверенным
Выполните следующие команды:
Закройте все открытые экземпляры браузера. Откройте новое окно браузера для приложения. Доверие сертификатов кэшируется браузерами.
Приведенные выше команды решают большинство проблем с доверием в браузере. Если браузер по-прежнему не доверяет сертификату, следуйте приведенным ниже рекомендациям для конкретной платформы.
Docker — сертификат не является доверенным
Windows — сертификат не является доверенным
Закройте все открытые экземпляры браузера. Откройте новое окно браузера для приложения.
OS X — сертификат не является доверенным
- Откройте keyChain Access.
- Выберите цепочку ключей системы.
- Проверьте наличие сертификата localhost.
- Убедитесь, что он содержит + символ на значке, чтобы указать, что он является доверенным для всех пользователей.
- Удалите сертификат из системной цепочки ключей.
- Выполните следующие команды:
Закройте все открытые экземпляры браузера. Откройте новое окно браузера для приложения.
Сертификат Linux не является доверенным
Если сертификат не соответствует, он может быть одним из следующих:
- Старый сертификат.
- Экспортирован сертификат разработчика для корневого пользователя. В этом случае экспортируйте сертификат.
Сертификат корневого пользователя можно проверить по адресу:
IIS Express SSL-сертификат, используемый с Visual Studio
Чтобы устранить проблемы с сертификатом IIS Express, выберите "Восстановить" в установщике Visual Studio. Дополнительные сведения см. в этой статье об ошибке на GitHub.
Я только что создал приложение MVC по умолчанию с использованием net core 2.0.
Чтобы отключить SSL, вам нужно сделать 2 шага. Вы можете сделать это либо с помощью графического интерфейса Visual Studio, либо отредактировав файл launchsettings.json (ниже).
- перейти к свойствам вашего проекта
- Снимите флажок с опции SSL
- Скопируйте URL-адрес приложения на поле ввода "Начать браузер".
Если вы не являетесь поклонником использования интерфейса, вы также можете отредактировать файл launchsettings.json, установив sslPort: 0 и "launchUrl": "http://localhost:13121/" (или там, где вы хотите запустить приложение)
Хотя это работает, когда я вхожу на свой сайт, он успешно выполняет вход, но никогда не устанавливает cookie аутентификации, что означает, что я не могу получить доступ к страницам администратора
Совет: launchUrl принимает относительные URL-адреса, поэтому на самом деле вам не нужно копировать схему и размещать там. Просто введите / или оставьте поле пустым.
Перейдите в "Свойства приложения" и снимите флажок "Включить SSL".
К сожалению, в Visual Studio это больше не работает. Это нерешенная ошибка, которую MS отказывается признать.
Я понимаю, что вопрос в том, чтобы отключить защищенный, но вам, вероятно, не нужно. Вероятно, у вас уже есть незащищенный.
По общему признанию, я унаследовал этот проект, поэтому я не знаю, будет ли проект по умолчанию настроен таким же образом. Я предполагаю, что для вас уже доступен незащищенный URL-адрес, который вы могли пропустить.
- Если я ошибаюсь, этот ответ кажется хорошим ( Ngrok errors '502 bad gateway '), но опять же мне не пришлось пробовать.
Просто посмотрите в свойствах «Сервер разработки».
Смотрите мой скриншот ниже:
Вместо того, чтобы скрывать части изображения, рассмотрите возможность использования фиктивного проекта, чтобы указать на информацию, если название проекта настолько конфиденциально, в противном случае не помещайте изображения вообще и используйте текст только для инструкций
Инструкции были такими: «Просто посмотрите в свойствах« Сервер разработки »». Так что изображение должно только добавить к этому .
Где найти свойства «Сервер разработки»? У меня такая же проблема - VS настаивает на SSL, а SSL нигде не определен.
Если ответ, предоставленный @Marco, не решил проблему, вы можете попробовать это,
Http-Equiv = "Content-Security-Policy" content = "update-insecure-requests"
Также прокомментируйте следующую строку из файла Startup.cs
Скорее всего, это в ваших настройках публикации.
Читайте также: