Решение ошибки “Unable to configure HTTPS endpoint. No se…

スポンサーリンク

Ошибка: Невозможно настроить HTTPS-эндпоинт. Сертификат сервера не указан, и сертификат разработчика по умолчанию не найден

Обзор Ошибки

При запуске приложения на ASP.NET Core разработчики могут столкнуться с ошибкой: “Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found”. Эта ошибка указывает на то, что приложение не может найти действительный SSL-сертификат для настройки безопасного HTTPS-соединения. Это часто возникает во время разработки, когда сертификаты не настроены должным образом.

Распространенные Причины

  1. Отсутствие сертификата: Сертификат для HTTPS не был создан или не указан.
  2. Неисправный сертификат разработчика: Стандартный сертификат разработчика отсутствует или истек.
  3. Неправильные настройки Kestrel: Неверные параметры конфигурации для Kestrel могут привести к этой ошибке.
  4. Проблемы с разрешениями: У приложения могут быть недостаточные права для доступа к сертификату.
  5. Конфликтующие сертификаты: Если на машине есть несколько сертификатов для одного и того же домена, это может вызвать проблемы.

Методы Решения

Метод 1: Создание нового SSL-сертификата

Если у вас нет действительного сертификата, вы можете создать его с помощью OpenSSL. Выполните следующие шаги:

  1. Создайте конфигурационный файл asp_config.conf с содержимым:
    “`
    [ req ]
    default_bits = 2048
    distinguished_name = dn
    req_extensions = aspnet

    [ dn ]
    CN = localhost

    [ aspnet ]
    basicConstraints = critical, CA:FALSE
    keyUsage = critical, digitalSignature, keyEncipherment
    extendedKeyUsage = critical, serverAuth
    subjectAltName = critical, DNS:localhost
    1.3.6.1.4.1.311.84.1.1 = DER:02
    “`

  2. Выполните команду для создания сертификата:
    bash
    openssl req -new -config asp_config.conf -keyout local_asp_dev.key -out local_asp_dev.csr -nodes
  3. Подпишите сертификат:
    bash
    openssl x509 -req -in local_asp_dev.csr -CA /path/to/CA.pem -CAkey /path/to/CA.key -CAcreateserial -out local_asp_dev.crt -days 365 -sha256 -extensions aspnet -extfile asp_config.conf
  4. Создайте PFX файл:
    bash
    openssl pkcs12 -in local_asp_dev.crt -inkey local_asp_dev.key -export -out local_asp_dev.pfx
  5. Переместите созданный файл PFX в хранилище сертификатов:
    bash
    mv local_asp_dev.pfx ~/.dotnet/corefx/cryptography/x509stores/my/

Метод 2: Очистка старых сертификатов

Если у вас уже есть сертификаты, но они не работают, попробуйте очистить их:

  1. Выполните команду:
    bash
    dotnet dev-certs https --clean
  2. Удалите все сертификаты с именем ASP.NET Core... из Personal и Trusted root certification authorities в Certificates.
  3. После удаления выполните команду для установки нового сертификата:
    bash
    dotnet dev-certs https --trust

Метод 3: Настройка Kestrel для использования сертификата

Убедитесь, что ваш Program.cs файл правильно настроен для использования сертификата:

“`csharp
public class Program

コメント

タイトルとURLをコピーしました