Поделиться через


Предупреждения о недоверенном сертификате после установки Visual Studio 2015 с обновлением 3

Эта статья поможет устранить предупреждения, возникающие для ненадежного сертификата после установки Microsoft Visual Studio 2015 с обновлением 3.

Исходная версия продукта: Visual Studio 2015
Исходный номер базы знаний: 3180222

Симптомы

Вы разработали веб-приложения с помощью протокола Hypertext Transfer Secure (HTTPS) с помощью версии выпуска Visual Studio 2015, обновления 1 или обновления 2. Однако после установки Visual Studio 2015 с обновлением 3 вы начнете получать предупреждения о недоверенном сертификате.

Причина

Во время первоначальной установки Visual Studio службы IIS (IIS) express устанавливает самозаверяющий сертификат в Certificates (Local Computer)\Personal\Certificates папку, если сертификат еще не существует. При первом отладке веб-приложения, использующего протокол SSL, вам будет предложено установить этот сертификат в папку Certificates - Current User\Trusted Root Certification Authorities\Certificates .

Во время обновления до Visual Studio 2015 с обновлением 3 служба IIS Express устанавливает новый самозаверяющий сертификат SHA256 в папку Certificates (Local Computer)\Personal\Certificates . Однако, так как в папке уже установлен Certificates - Current User\Trusted Root Certification Authorities\Certificates сертификат, Visual Studio не сможет установить новый сертификат SHA256 в папку Certificates - Current User\Trusted Root Certification Authorities\Certificates .

Метод 1. Использование скрипта PowerShell

Примечание.

Это является предпочтительным методом.

  1. Выполните следующий сценарий в интегрированной среде сценариев Windows PowerShell (ISE):

    ipmo PKI
    $name = [GUID]::NewGuid()
    $cerFile = "$env:TEMP\$name.cer"
    $certs = Get-ChildItem Cert:\LocalMachine\My -DnsName localhost -SSLServerAuthentication |
    ? {($_.FriendlyName -eq 'IIS Express Development Certificate') -and
    ($_.SignatureAlgorithm.FriendlyName -ieq 'sha256RSA') -and
    ($_.EnhancedKeyUsageList.Count -eq 1)}
    if ($certs.Count -eq 0)
    {
        Write-Error 'Cannot find any SHA256 certificate generated by IIS Express.
        Please make sure that the latest version of IIS Express is installed.'
    }
    else
    {
        foreach ($cert in $certs)
        {
            Export-Certificate -Cert $cert.PSPath -FilePath $cerFile -Type CERT | Out-Null
            Import-Certificate -FilePath $cerFile -CertStoreLocation Cert:\CurrentUser\Root | Out-Null
            Remove-Item $cerFile -Force
        }
        Write-Host 'Successfully installed the certificate to
        Trusted Root Certification Authorities of the current user.'
    }
    
  2. Нажмите кнопку "Да", когда появится следующее предупреждение:

    Снимок экрана: окно

  3. После завершения выполнения скрипта в командном окне powerShell ISE появится следующее сообщение:

    Сертификат успешно установлен в доверенных корневых центрах сертификации текущего пользователя.

Метод 2. Настройка компьютеров для доверия сертификату IIS Express

  1. Откройте консоль управления Майкрософт, нажав кнопку "Пуск", введите команду "Запустить" и нажмите клавишу ВВОД. В диалоговом окне "Запуск" введите mmc и нажмите кнопку "ОК".

    Снимок экрана: окно выполнения, в котором вводится mmc.

  2. Добавьте оснастку для управления сертификатами для локального компьютера. Для этого выполните следующие шаги.

    1. В меню Файл выберите Добавить или удалить оснастку.

      Снимок экрана: меню

    2. В диалоговом окне "Добавление или удаление оснастки" выберите "Сертификаты" и нажмите кнопку "Добавить".

      Снимок экрана: диалоговое окно

    3. В диалоговом окне "Сертификаты" выберите учетную запись компьютера и нажмите кнопку "Далее".

      Снимок экрана: диалоговое окно оснастки

    4. В диалоговом окне "Выбор компьютера" выберите "Локальный компьютер" и нажмите кнопку "Готово".

      Снимок экрана: диалоговое окно

    5. В диалоговом окне "Добавление или удаление оснастки" снова выберите "Сертификаты" и на этот раз выберите учетную запись "Мой пользователь" в диалоговом окне "Сертификаты".

      Снимок экрана: диалоговое окно

  3. Экспортируйте сертификат SHA256 IIS Express из Certificates (Local Computer)\Personal\Certificatesследующего:

    1. Откройте сертификат разработки IIS Express, убедитесь, что выбран сертификат SHA256. и нажмите кнопку "Копировать в файл".

      Снимок экрана: выбор сертификата SHA256 и кнопка

    2. В мастере экспорта сертификатов выберите "Нет", не экспортируйте закрытый ключ и нажмите кнопку "Далее".

      Снимок экрана: диалоговое окно мастера экспорта сертификатов, чтобы выбрать

    3. На следующей странице мастера выберите в кодировке DER двоичный файл X.509 (). CER), а затем нажмите кнопку "Далее".

      Снимок экрана: страница для проверки двоичного файла X.509 в кодировке DER (. Параметр CER).

    4. На следующей странице мастера выберите расположение на диске и следуйте остальным шагам, пока сертификат не будет успешно экспортирован.

  4. Импортируйте экспортируемый сертификат в следующее расположение:
    Certificates - Current User\Trusted Root Certification Authorities\Certificates

    Для этого выполните следующие шаги.

    1. Перейдите Certificates - Current User\Trusted Root Certification Authorities\Certificates в папку и нажмите кнопку "Действие", наведите указатель на все задачи и нажмите кнопку "Импорт".

    2. В мастере импорта сертификатов перейдите к экспортируемму сертификату (доверенным корневым центрам сертификации), а затем выберите "Поместить все сертификаты" в следующем хранилище.

      Снимок экрана: страница для проверки размещения всех сертификатов в следующем хранилище. Хранилище — доверенные корневые центры сертификации.

    3. Нажмите кнопку "Далее", убедитесь, что выбран правильный сертификат, а затем нажмите кнопку "Готово".

После успешного импорта самозаверяющего сертификата IIS вы больше не получите предупреждения о недоверенном сертификате во время разработки.