Невозможно настроить конечную точку 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 ответов
Эти инструкции из этого блога работали на меня
- DotNet Dev-Certs https --clean
- 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
не работали на меня. Наконец я смог исправить это с помощью следующих шагов.
- Перейти в брелок доступа
- Разблокировать брелок системы
- Удалить
localhost
сертификат - Бегать
dotnet dev-certs https -t
Теперь вы должны быть в состоянии работать без ошибок.
Для меня проблема была решена запуском:
- dotnet dev-сертификаты https --clean
- 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 вручную.
- Откройте certmgr.msc
- Удалите все сертификаты localhost в разделе "Доверенные корневые центры сертификации / сертификаты".
- Пробег
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
не работает.
- Откройте Run и откройте mmc.exe
- Внутри MMC из меню «Файл» нажмите «Добавить / удалить оснастку».
- В окне добавления / удаления оснастки найдите сертификаты в доступных оснастках и добавьте их в выбранные.
- Выберите учетную запись пользователя
- В корне консоли -> Сертификаты текущего пользователя -> Личные нажмите Сертификаты.
- Вы увидите список выданных и установленных сертификатов для текущего пользователя. НЕ удаляйте и не изменяйте какие-либо сертификаты, о которых вы не знаете, удаляйте только сертификаты, связанные с самоподписью localhost ASP.NET Core.
- dotnet tool uninstall --global dotnet-dev-certs --version (необходимая версия)
- установка инструмента dotnet --global dotnet-dev-certs
- 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>();
});
У меня была такая же проблема, но ни один из ответов здесь не помог. Я понял, что мне не хватает строки в конфигурации, которая и вызвала это. (Я запускал 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();