Как обновить устаревшие сертификаты разработчика в Visual Studio
При работе с HTTPS‑сайтами, API‑приложениями или микросервисами Visual Studio генерирует самоподписанный сертификат «Developer Certificate for Visual Studio».
- Для ASP.NET Core (или .NET 5/6/8) он хранится в
%USERPROFILE%\.dotnet\store\. - Для старых ASP.NET Framework проектов он размещён в
%APPDATA%\Microsoft\Crypto\RSA\MachineKeysи автоматически добавляется в хранилище сертификатов Windows.
Срок действия сертификата ограничен, поэтому через некоторое время браузер (или клиентская программа) откажется доверять вашему локальному сайту. В таком случае появляется ошибка “Криптографическая ошибка: SSL/TLS handshake failed” или “The certificate is not trusted”.
Ниже - пошаговый процесс обновления сертификата для двух сценариев.
1. Обновление сертификата в ASP.NET Core (или более новых .NET)
Алгоритм
| № | Что делаем | Команда / действие |
|---|---|---|
| 1 | Удаляем старый сертификат из хранилища dotnet store |
dotnet dev-certs https --clean |
| 2 | Создаём новый сертификат (выполняется автоматически при запуске приложения, но можно задать вручную) | dotnet dev-certs https --trust (Команда открывает диалог доверия в Windows и сохраняет сертификат в Trusted Root Certification Authorities) |
| 3 | Проверяем статус | dotnet dev-certs https --check -v |
| 4 | Если приложение всё ещё не запускается, перезапускаем Visual Studio или dotnet run |
Подробный разбор аргументов команд
--clean- удаляет все сертификаты из каталога~\.dotnet\store.--trust- генерирует новый самоподписанный сертификат, сохраняет его в хранилище и добавляет в доверенные корневые центры.--check -v- выводит подробный статус (действителен ли сертификат, есть ли у него цепочка доверия).
Возможные ошибки
| Ошибка | Решение |
|---|---|
The certificate was not found in the trust store. |
Убедитесь, что запускаете команду от имени администратора. Если используете Docker/WSL, сертификат может находиться в другом каталоге - смотрите переменную окружения DOTNET_CLI_HOME. |
| dotnet dev-certs не запустилось из терминала Visual Studio | Запустите PowerShell от имени администратора и выполните команду вручную. После успешного выполнения сертификат будет доступен для всех проектов .NET Core. |
В списке сертификатов он будет отображаться под именем ASP.NET Core HTTPS development certificate
2. Обновление сертификата для старых сайтов на ASP.NET Framework
Здесь будет продемонстрировано два способа.
IisExpressAdminCmd - это утилита командной строки для управления Microsoft IIS Express.
Алгоритм для IIS Express
| № | Что делаем | Команда / действие |
|---|---|---|
| 1 | Удаляем старый сертификат из хранилища «Trusted Root Certification Authorities» | Откройте mmc.exe → Certificates (Local Computer) → Trusted Root Certification Authorities → удалите сертификат с подписью Microsoft Visual Studio Development Certificate. |
| 2 | Переходим в каталог IIS Express | В PowerShell: cd C:\Program Files (x86)\IIS Express |
| 3 | Создаём новый сертификат и привязывем его к указаному сайту. Здесь важно указать ваш порт | IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44393/ -UseSelfSigned |
В списке сертификатов он будет отображаться под именем IIS Express Development Certificate
Если сайт на полноценном IIS (не Express)
| № | Что делаем | Команда / действие |
|---|---|---|
| 1 | Удаляем старый сертификат из хранилища «Trusted Root Certification Authorities» | Откройте mmc.exe → Certificates (Local Computer) → Trusted Root Certification Authorities → удалите сертификат с подписью Microsoft Visual Studio Development Certificate. |
| 2 | Создаём новый сертификат вручную (если нет автоматической генерации) | В PowerShell: $cert = New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation Cert:\LocalMachine\My |
| 3 | Добавляем его в «Trusted Root Certification Authorities» | Import-Certificate -FilePath $cert.PSPath -CertStoreLocation Cert:\LocalMachine\Root |
| 4 | Привязываем сертификат к вашему веб‑сайту (IIS) | В Internet Information Services (IIS) Manager → Sites → ваш сайт → Bindings… → добавьте HTTPS‑binding с выбранным сертификатом. |
| 5 | Перезапускаете IIS/Visual Studio, чтобы изменения вступили в силу. |
Автоматическое обновление через Visual Studio
В идеальном мире Visual Studio перед каждым запуском сайта должен следить за жизненным циклом сертификатов разработки, и обновлять их при устаревании или создавать при отсутствии. Однако на практике это происходит не всегда, что и заставило меня наконец раз и навсегда задокументировать в заметки, а потом и в блог, эти способы ручного обновления сертификатов.
-
Пока нет комментариев. Будьте первым!


Для добавления комментариев необходимо войти в систему