Chrome использует локальный SSL-сертификат, отличный от Visual Studio - PullRequest
1 голос
/ 09 апреля 2020

VS 2019 16.5.0 Предварительный просмотр 5 Windows 10 Chrome Версия 80.0.3987.163 (Официальная сборка) (64-разрядная версия)

Я гуглил это и не могу найти ответ.

Я пытаюсь запустить простое приложение asp. net core MVC с TLS на localhost.

Я создал новый проект, затем в настройках проекта я включил SSL и полученный URL я скопировал как URL приложения enter image description here enter image description here

Приложение запускается правильно, а TLS CA не является доверенным? Я следовал приведенному здесь примеру: { ссылка } и добавил сертифицированную папку «Расположен в Personal/Certificates» в Trusted Root Certification Authorities - Certificates. Управление сертификатами компьютеров теперь показало, что ЦС является доверенным.

Я перезагрузил приложение и увидел, что SSL-сертификат localhost, используемый Chrome, отличается от того, который зарегистрирован на моем компьютере, и поэтому CA все еще не является доверенным. enter image description here enter image description here

1 Ответ

0 голосов
/ 12 апреля 2020

Я обнаружил проблему:

enter image description here

По какой-то причине у меня был установлен локальный хост в моих LocalComputer сертификатах магазина. Это заставило меня подумать, что Visual Studio создала его, в действительности VS создает сертификаты в хранилище CurrentUser, как , видимый открытым кодом в do tnet repo .
Как правило, процедура для генерирование и сертификат TLS VS, ожидается, что go как таковой:

  1. A. NET Проект помечен как HTTPS, и вы пытаетесь запустить его.
  2. VS проверяет наличие сертификата в хранилище CurrentUser, запрашивает его создание, если он не
  3. Пользователь нажимает YES, чтобы создать сертификат, изначально сертификат устанавливается в CurrentUser/Personal/Certificates store

  4. VS затем видит, что у вас нет сертификата localhost в CurrentUser/TrustedRootCA/Certificates, и запрашивает, хотите ли вы установить его, нажимаете YES - все готово.

Теперь, если по какой-то причине вы похожи на меня ... и ваш CurrentUser/Trusted Root Certification Authority/Certificates только для чтения. Затем вы попадаете в следующую строку кода:

           case EnsureCertificateResult.FailedToTrustTheCertificate:
                reporter.Warn("There was an error trusting HTTPS developer certificate.");

Поскольку шаг 4 не выполнен ...

Слишком смягчить это:

  1. Открыть CurrentUser и LocalComputer магазины. Вы можете сделать это, следуя этому руководству Microsoft , или просто введите certlm.msc и certmgr.msc в меню «Пуск».
  2. Щелкните правой кнопкой мыши Экспорт на сертификате локального хоста в CurrentUser сохранить и экспортировать это как с параметрами по умолчанию
  3. Попробуйте импортировать тот же сертификат в папке Trusted Root Certification Authorities / Certificates в хранилище CurrentUser.
  4. Если на шаге 3 произошел сбой, то он должен иметь иначе вы не попали бы в это затруднительное положение, импортируйте свой сертификат в папку «Доверенные Root Центры сертификации / Сертификаты» в хранилище LocalComputer.

Теперь все должно работать. Надеюсь, вы бы не потратили на это 6 часов, как я.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...