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

Я работаю над приложением Fabric, где я настроил HTTPS. Это исключение, хотя у меня есть действующий установленный сертификат.

Код в ткани

public Task<string> OpenAsync(CancellationToken cancellationToken)
    {
        var endpoint = FabricRuntime.GetActivationContext().GetEndpoint(this._endpointName);
        string serverUrl = $"{endpoint.Protocol}://{FabricRuntime.GetNodeContext().IPAddressOrFQDN}:{endpoint.Port}";
        webHost = new WebHostBuilder()
                        .UseKestrel(options => {
                            options.Listen(IPAddress.Any, endpoint.Port, listenOptions =>
                            {
                                listenOptions.UseHttps();
                            });
                        })
                        .UseContentRoot(Directory.GetCurrentDirectory())
                        .UseStartup<Startup>()
                        .UseUrls(serverUrl)
                        .Build();

        webHost.Start();

        return Task.FromResult(serverUrl);
    }

Установленный сертификат

введите описание изображения здесь

Я пропустил какую-либо конфигурацию?

28 ответов

Эти инструкции из этого блога работали на меня

  1. DotNet Dev-Certs https --clean
  2. dotnet dev-certs https -t

Я надеюсь, что отдельный ответ подойдет, так как у меня нет представителя для комментариев. Вот решение, которое я нашел, о котором я не упоминал нигде на SO или других сайтах. Это относится к диспетчеру сертификатов Windows, не уверен, что другие ОС сталкиваются с аналогичными проблемами.

Что я пробовал из других ответов

dotnet dev-certs https аргументы

Я пробовал разные комбинации dotnet dev-certs https с участием --trust, --clean --verbose (который, похоже, не регистрировал никакой дополнительной информации), и --check (который так и не нашел сертификата)

certmgr.msc

Как было предложено в других ответах, я удалил все сертификаты localhost в разделе Trusted Root Certification Authorities\Certificates в certmgr.msc в сочетании с dotnet dev-certs https --clean

Решение

В конце концов я понял, что certmgr.mscтакже показал ряд сертификатов localhost в разделе Personal \ Certificates. Оказалось, что их тоже нужно было удалить.

Затем бег dotnet dev-certs https -t один раз создал и доверял новому сертификату разработки.

Я проверил, отладив приложение ASP.NET Core. Другой способ проверить - запустить dotnet dev-certs https --check --verbose

Я на OSX и dotnet dev-certs https --clean а также sudo dotnet dev-certs https --clean не работали на меня. Наконец я смог исправить это с помощью следующих шагов.

  1. Перейти в брелок доступа
  2. Разблокировать брелок системы
  3. Удалить localhost сертификат
  4. Бегать dotnet dev-certs https -t

Теперь вы должны быть в состоянии работать без ошибок.

Для меня проблема была решена запуском:

  1. dotnet dev-сертификаты https --clean
  2. dotnet dev-сертификаты https --verbose

У меня была эта проблема в моей системе Windows 10 с использованием Visual Studio. Проблема заключалась в том, что команда, используемая в графическом интерфейсе для очистки локальных сертификатов для HTTPS, не работала с сообщением об ошибке, которое я больше не могу воспроизвести.

Решением для меня было открыть certmgr для текущей учетной записи Windows и удалить все личные сертификаты localhost. Там было ~20 сертификатов для меня, потому что я пытался воссоздать их много раз. После удаления всех этих сертификатов я снова запустил свой HTTPS API ядра.Net, и все заработало!

Таким образом, откройте свой certmgr для текущего пользователя и очистите все личные / локальные сертификаты.

Для меня удаление файлов в «file:\%APPDATA%\Microsoft\SystemCertificates\My\Certificates» и запуск в cmd «dotnet dev-certs https -t» решило мою проблему. Спасибо за все предложения.

Если вы посещаете эту страницу, и если вы, как и я, неудачливы, испробовали все решения/подходы, упомянутые на этой странице, но ничего не сработало, то вам может быть интересно узнать, что я сделал и решил свою проблему.

Я получал эту ошибку из своего веб-приложения ASP.NET Core независимо от того, сколько раз я удалял сертификаты localhost.

Затем я создал самозаверяющий сертификат с помощью Powershell с помощью этой команды. [Я скопировал этот фрагмент PowerShell откуда-то из Интернета. Не могу вспомнить источник.]

        $cert = New-SelfSignedCertificate -DnsName mydemowebapp.net -CertStoreLocation cert:\LocalMachine\My
  $pwd = ConvertTo-SecureString -String "MyPassword" -Force -AsPlainText
  Export-PfxCertificate -Cert $cert -FilePath C:\temp\cert.pfx -Password $pwd

Затем я добавил эту запись в свой appsertings.Development.json.

        "Kestrel": {
    "EndPoints": {
      "Https": {
        "Url": "https://localhost:5000",
        "Certificate": {
          "Path": "C:\\temp\\cert.pfx",
          "Password": "MyPassword",
          "AllowInvalid": "true"
        }
      }
    }
  }

Запустил приложение, бум! задача решена. Я использовал тот же URL-адрес https://localhost:5000, что и в моем LaunceSettings.

Я ненавижу такое решение, но, по крайней мере, я мог бы продолжить разработку с таким решением. Я не знаю, что на самом деле случилось в последнее время, что мне пришлось столкнуться с этой проблемой. Это было обновление Windows? или что-то другое? Я не знаю. Я не сталкивался с этой проблемой раньше, до недавнего времени. И да, я не забыл запустить веб-сайт в Kestrel, а не в IIS.

В окнах, dotnet dev-certs https --clean у меня не работает, мне нужно удалить эти сертификаты localhost вручную.

  1. Откройте certmgr.msc
  2. Удалите все сертификаты localhost в разделе "Доверенные корневые центры сертификации / сертификаты".
  3. Пробег dotnet dev-certs https -t

Я использую Mac (macOS 12.6.7) и пытаюсь запустить проект веб-сайта ASP.NET Core в VS Code, и ни один из приведенных выше ответов не помог мне полностью. Только почти.

Как я заработал на работе. Выполните в терминале следующие команды:

  • Очистите проект ASP.NET Core:dotnet clean
  • Очистить существующий сертификат:dotnet dev-certs https --clean
  • Создайте новый сертификат:dotnet dev-certs https --trust

Теперь я смог запустить проект с помощьюdotnet runи перезагрузить браузер.

PS: Если вам лень, вы также можете связать команды следующим образом:dotnet clean && dotnet dev-certs https --clean && dotnet dev-certs https --trust

Откройте RUN , затем введите mmc.exe, затем

сертификат двойного клика

Удалить сертификат localhost в обеих папках

затем откройте свой powershell

      dotnet dev-certs https --clean
dotnet dev-certs https 
dotnet dev-certs https --trust

Создайте новый сертификат:

      $ dotnet dev-certs https --trust
The HTTPS developer certificate was generated successfully.

У меня была похожая (но не совсем та же) проблема.
С 2.1 вы должны настроить свой сертификат.
Я делаю это сейчас полностью в appsettings.json.
Вы можете найти мой пост здесь:
Настройка самостоятельного хостинга приложения Kestrel с сертификатом для https (интернет-сервер)

Только посмотрите на решение...

Если вы запускаете приложение локально с помощью docker-compose, вам может потребоваться выполнить следующие команды:

  • dotnet dev-certs https --clean
  • dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p {пароль здесь}
  • dotnet dev-certs https --trust

Затем добавьте в файл docker-compose.yml следующие строки:

      environment:
  - ASPNETCORE_Kestrel__Certificates__Default__Password=password
  - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
volumes:
  - ~/.aspnet/https:/https:ro

Подробнее см. https://learn.microsoft.com/en-us/aspnet/core/security/docker-compose-https?view=aspnetcore-6.0.

Я столкнулся с аналогичной проблемой, это как-то связано с сертификатом, имеющим то же имя, что и проект. Удалив.keyи.pemфайлы в%appdata%/ASP.NET/httpsпапку, соответствующую вашему проекту, это решит вашу проблему, запустив приложение после этого, автоматически переделав для меня сертификаты. Если запуск приложения после удаления этих файлов не работает, попробуйте

dotnet dev-certs https --clean

затем

dotnet dev-certs https --trust

Вот, в этой статье также есть эта информация. ссылка на статью

Если dotnet dev-certs https --clean не работает.

  1. Откройте Run и откройте mmc.exe
  2. Внутри MMC из меню «Файл» нажмите «Добавить / удалить оснастку».
  3. В окне добавления / удаления оснастки найдите сертификаты в доступных оснастках и добавьте их в выбранные.
  4. Выберите учетную запись пользователя
  5. В корне консоли -> Сертификаты текущего пользователя -> Личные нажмите Сертификаты.
  6. Вы увидите список выданных и установленных сертификатов для текущего пользователя. НЕ удаляйте и не изменяйте какие-либо сертификаты, о которых вы не знаете, удаляйте только сертификаты, связанные с самоподписью localhost ASP.NET Core.
  1. dotnet tool uninstall --global dotnet-dev-certs --version (необходимая версия)
  2. установка инструмента dotnet --global dotnet-dev-certs
  3. dotnet dev-сертификаты https - доверие

Для получения более подробной информации посетите страницу выпуска GitHub здесь также официальную документацию Здесь

Если вы хотите работать в среде, отличной от среды разработки, не забывайте, что секреты пользователей добавляются автоматически только тогда, когда env имеет значение Development.

Вы можете использовать методы AddUserSecrets, чтобы решить эту проблему:

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureAppConfiguration((hostingContext, builder) =>
                {
                    var env = hostingContext.HostingEnvironment;
                    if (env.IsEnvironment("Local"))
                    {
                        builder.AddUserSecrets<Startup>();
                    }
                })
                .UseStartup<Startup>();
            });

см. также: https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.1&tabs=windows#access-a-secret

У меня была такая же проблема, но ни один из ответов здесь не помог. Я понял, что мне не хватает строки в конфигурации, которая и вызвала это. (Я запускал asp.net через docker Compose). Недостающая строка была:ASPNETCORE_URLS=https://+:443;http://+:80в файле docker-compose:

      version: '3.4'

services:
  webapplication1:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
    ports:
      - "80"
      - "443"
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

Когда я пробовал все, я все равно получилERR_SSL_VERSION_OR_CIPHER_MISMATCH.

можно попробовать удалитьbinиobjкаталоги всех проектов, затем запуститеdotnet restore.

Работает на меня.

У меня были те же проблемы и уборка -> тогда мне помогла установка сертификатов (другой ответ здесь). Вы также можете выдать сертификат как для производственного сервера. Довольно полезно знать.

Я столкнулся с этой проблемой, и моим решением было перезапустить. Когда я это сделал, а затем снова открыл Visual Studio 2019, он попросил меня принять новый сертификат SSL. После этого я смог запустить свою программу.

Еще одна деталь. Если вы обычно входите в систему как обычный (не администраторский) пользователь, НЕ запускайте команды dotnet dev-certs https из командной строки администратора, если у вас есть отдельная учетная запись на уровне администратора . Запустите их в обычной командной строке под обычным логином. Спроси меня, откуда я знаю. :-П

Если вы запустите эти команды из командной строки с повышенными привилегиями (используя явно отдельную учетную запись администратора), вы увидите следующее:

  • "dotnet dev-certs https --trust" будет работать нормально
  • "dotnet dev-certs https --check --verbose" сообщит вам, что все в порядке
  • VS Code продолжит выдавать ошибку «Невозможно настроить конечную точку HTTPS ...» при попытке запустить отладчик.
  • Вы по-прежнему будете получать предупреждения «Сертификат не надежен» из браузера.

Если вы видите эти проблемы, запустите команды dotnet dev-certs https из обычной командной строки. Исправил для меня. Надеюсь, это поможет кому-то, не тратя на это время, которое я потратил на это!

У меня была такая же проблема. Проблема заключалась в том, что проект был с.net 4.6.1, а не с ядром.net.

Я запускаю это в командной строке. кстати, я использую Window 10 dotnet dev-certs https dotnet dev-certs https -t

Я пробовал все, что здесь перечислено. Я использую макОС. моему сертификату доверяли, и в итоге я удалил его и несколько раз возвращался с помощью вышеуказанных команд, и он все еще не работал, когда я выполнял компоновку докера через свой терминал.

Однако с помощью кнопки воспроизведения в Visual Studio для Mac это сработало мгновенно.

Не уверен, что это поможет кому-то еще, но у меня была именно эта проблема на моем Mac. У меня есть проект в Dropbox, поэтому он используется на всех машинах, на второй машине мне пришлось зайти и вручную удалить папки obj и bin, затем повторно запустить приложение, и все сработало.

Если вы хотите избавиться от этой проблемы, то в launchsettings.json измените «useSSL»: false

Я прокомментировал следующую строку в файле Startup.cs, и у меня это сработало.

      app.UseHttpsRedirection();
Другие вопросы по тегам