#.net #asp.net-core #https
#.net #asp.net-core #https
Вопрос:
Я работаю над книгой Адама Фримена «Pro ASP.Net Ядро 3». Я добрался до введения в https. Он инструктирует нас использовать Powershell и запускать эти команды в таком порядке
dotnet dev-certs https --clean
dotnet dev-certs https --trust
Когда я запускаю clean
команду, я получаю сообщение о том, что
«Сертификаты разработки HTTPS успешно удалены с компьютера».
Но когда я запускаю команду trust, я получаю:
«Не найден действительный сертификат HTTPS с ключом, доступным через разделы безопасности. Чтобы исправить это, будет запущена следующая команда: ‘sudo security set-key-partition-list -D localhost -S unsigned:,teamid: UBF8T346G9’ Эта команда сделает ключ сертификата доступным для всех разделов безопасности и может запросить у вас пароль. Для получения дополнительной информации см.: https://aka.ms/aspnetcore/2.1/troubleshootcertissues
Действительный сертификат HTTPS с ключом, доступным через разделы безопасности, не найден. Чтобы исправить это, будет запущена следующая команда: ‘sudo security set-key-partition-list -D localhost -S unsigned:,teamid: UBF8T346G9’ Эта команда сделает ключ сертификата доступным для всех разделов безопасности и может запросить у вас пароль. Для получения дополнительной информации см.: https://aka.ms/aspnetcore/3.1/troubleshootcertissues
Было запрошено доверие к сертификату разработки HTTPS. Если сертификат ранее не был доверенным, будет отображено приглашение с подтверждением. Нажмите да в приглашении, чтобы доверять сертификату. Произошла ошибка, связанная с доверием к сертификату разработчика HTTPS «.
Я пытался
dotnet dev-certs https
результатом выполнения является сообщение «Действительный сертификат HTTPS уже присутствует».- запуск powershell от имени администратора. Но я получил те же ошибки. В книге говорится, что я могу получить пару диалоговых окон, но я их не получил.
dotnet --version
дает мне 3.1.200.
Что мне нужно сделать, чтобы сертификат заработал?
Комментарии:
1.
A valid HTTPS certificate is already present.
Похоже, что сертификат разработчика сгенерирован, вы можете попытаться вручную доверить сертификат с помощью ASP.NET Дружественное имя для базового сертификата разработки HTTPS путем копирования из текущего пользователя> Личные> Сертификаты в Текущий пользователь> Доверенные корневые центры сертификации> Сертификаты в пользовательском интерфейсе менеджера сертификатов. Затем проверьте, работает ли это для вас.2.
Great! That worked!
Привет @ROBERTRICHARDSON, рад слышать, что обходной путь помог решить проблему. Я пишу сообщение, и вы можете принять его как ответ, который поможет другим членам сообщества быстро найти этот случай и решить аналогичную проблему.3. Я получаю тот же круговой блок …. но на Mac. (Я не фанат Mac, но в нашей гибридной среде java / dotnet-core разработчикам выдаются Mac, поскольку сетевые политики ПК настолько жестко заблокированы). Почему мой компьютер лжет мне ?? :). «Сертификаты разработки HTTPS успешно удалены с компьютера».
4. Будущие читатели. Здесь кто-то показывает идею «большего молотка»: github.com/dotnet/AspNetCore.Docs/issues / . … удаление инструмента dotnet —установка инструмента global dotnet-dev-certs dotnet — установка глобального dotnet-dev-certs dotnet dev-certs https —trust (к вашему сведению, это не работает для Mac, но я это видел.. так что оставил здесь хлебную крошку)
Ответ №1:
Хорошо … я нашел супер-подсказку MAC по ссылке github ниже.
(Это ~ может быть переведено на сторону ПК … но я не могу это проверить)
https://github.com/dotnet/sdk/issues/10422
Столкнулся с той же проблемой в macOS. В качестве решения в цепочке ключей удалите старый сертификат локального хоста в разделе «Система» и воссоздайте его с помощью команд dotnet, описанных в документации. Он будет помещен в раздел «вход».
Поэтому, чтобы лучше описать приведенную выше цитату, я добавил сюда снимок экрана (изображение ниже с пурпурными / фуксиевыми / розоватыми кругами), чтобы указать «вот где это на Mac» ….. того, что описывает текст выше..
Итак, мои шаги были:
dotnet dev-certs https --clean
dotnet dev-certs https --check
// (DO THE MANUAL keychain-old-localhost removal NOW (image below)
// (before running the below terminal commands)
dotnet dev-certs https --check
dotnet dev-certs https
dotnet dev-certs https --trust
Комментарии:
1. Это сработало отлично! Я бы никогда не понял этого самостоятельно.
2. @MerkleGroot Я тебя слышу. Вы чувствуете, что находитесь в лабиринте, занятом Минотавром … пытаетесь исправить это. Пожалуйста, сообщите, был ли у вас Mac или ПК.
3. Это был Mac, и я далек от эксперта по Mac.
4. Mac — мой наименее (и акцент на наименее) предпочтительный O / S. Я буду запускать win10, и я буду запускать «настоящий linux» (например, ubuntu.. с помощью «cinnamon»). но mac o / s, а не поклонник. Однако в моей нынешней компании разработчики получают «права администратора» на компьютерах Mac, но не на ПК. Так что я должен жить на одном из них по необходимости.
Ответ №2:
Что мне нужно сделать, чтобы заставить сертификат работать?
По какой-то причине dotnet CLI может выдавать исключение, когда мы используем dotnet dev-certs https --trust
command для доверия сертификату разработки HTTPS.
В качестве обходного пути мы можем попробовать выполнить следующие шаги, чтобы вручную доверять сертификату.
-
Запустите
dotnet dev-certs https
команду для создания сертификата HTTPS (если вы его не сгенерировали) -
Скопируйте сертификат с помощью ASP.NET Дружественное имя для базового сертификата разработки HTTPS путем копирования из текущего пользователя> Личные> Сертификаты в Текущий пользователь> Доверенные корневые центры сертификации> Сертификаты в пользовательском интерфейсе диспетчера сертификатов, как показано ниже.
Комментарии:
1. Для меня это сработало 1) с помощью
certmgr.msc
резервного копирования всехlocalhost
сертификатов,Personal
а затем их удаления 2)dotnet dev-certs https
привело кA valid HTTPS certificate with a key accessible across security partitions was not found...
3) я скопировал все еще действующийASP.NET Core HTTPS development certificate
из текущего пользователя> Доверенные корневые центры сертификации> Сертификаты для текущего пользователя> Личные> Сертификаты Это сработало, по крайней мере, настолько, чтоdotnet run
сработало