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


dotnet dev-certs

Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздних версий

Имя

dotnet dev-certs — создает самозаверяющий сертификат для использования HTTPS в разработке.

Краткий обзор

dotnet dev-certs https 
  [-c|--check] [--clean] [-ep|--export-path <PATH>]
  [--format] [-i|--import] [-np|--no-password]
  [-p|--password] [-q|--quiet] [-t|--trust]
  [-v|--verbose] [--version]

dotnet dev-certs https -h|--help

Описание

Команда dotnet dev-certs управляет самозаверяющий сертификатом, чтобы включить использование HTTPS при разработке локальных веб-приложений. Его main функции:

  • Создание сертификата для использования с конечными точками HTTPS во время разработки.
  • Доверие созданному сертификату на локальном компьютере.
  • Удаление созданного сертификата с локального компьютера.
  • Экспорт сертификата в различных форматах, чтобы его могли использовать другие средства.
  • Импорт существующего сертификата, созданного средством, на локальный компьютер.

Команды

  • https

    dotnet dev-certs имеет только одну команду: https. Команда dotnet dev-certs https без параметров проверяет наличие сертификата разработки в хранилище сертификатов текущего пользователя на компьютере. Если команда находит сертификат разработки, отображается сообщение, как показано в следующем примере:

    A valid HTTPS certificate is already present.
    

    Если команда не находит сертификат разработки, она создает его в хранилище сертификатов текущего пользователя, хранилище с именем My в расположении CurrentUser. Физическое расположение сертификата — это сведения о реализации среды выполнения .NET, которые могут измениться в любое время. В macOS в .NET 7.0 сертификат хранится в цепочке ключей пользователя и в виде PFX-файла: ~/.aspnet/https-aspnetcore-localhost-Thumbprint<[0.5]>.pfx.

    После создания сертификата команда отображает сообщение, как показано в следующем примере:

    The HTTPS developer certificate was generated successfully.
    

    По умолчанию созданный сертификат не является доверенным. Чтобы доверять сертификату, используйте --trust параметр .

    Чтобы создать файл, который можно использовать с другими средствами, используйте --export-path параметр .

Варианты

  • -c|--check

    Проверяет наличие сертификата разработки, но не выполняет никаких действий. Используйте этот параметр с параметром --trust проверка, является ли сертификат не только действительным, но и доверенным.

  • --clean

    Удаляет все сертификаты разработки HTTPS из хранилища сертификатов с помощью API хранилища сертификатов .NET. Не удаляет физические файлы, созданные с помощью --export-path параметра . В macOS в .NET 7.0 dotnet dev-certs команда создает сертификат по пути на диске, а операция очистки удаляет этот файл сертификата.

    Если в хранилище сертификатов есть хотя бы один сертификат, команда отображает сообщение, как показано в следующем примере:

    Cleaning HTTPS development certificates
    from the machine.
    A prompt might get displayed to confirm
    the removal of some of the certificates.
    
    HTTPS development certificates
    successfully removed from the machine.
    

  • -ep|--export-path <PATH>

    Экспортирует сертификат в файл, чтобы его могли использовать другие средства. Укажите полный путь к файлу экспортированного сертификата, включая имя файла. Тип создаваемых файлов сертификатов зависит от того, какие параметры используются с --export-path:

    Варианты Экспортируемые данные
    --export-path Общедоступная часть сертификата в виде PFX-файла.
    --export-path --format PEM Общедоступная часть сертификата в формате PEM. Отдельный KEY-файл не создается.
    --export-path --password Открытая и закрытая части сертификата в виде PFX-файла.
    --export-path --password --format PEM Открытая и закрытая части сертификата в виде пары файлов в формате PEM. Файл ключа имеет расширение .key и защищен заданным паролем.
    --export-path --no-password --format PEM Открытая и закрытая части сертификата в виде пары файлов в формате PEM. Файл ключа имеет расширение .key и экспортируется в виде обычного текста. Параметр --no-password предназначен только для внутреннего тестирования.
    • --format

    При использовании с --export-pathзадает формат экспортированного файла сертификата. Допустимые значения: PFX и PEM, без учета регистра. Значение по умолчанию — PFX.

    Формат файла не зависит от расширения имени файла. Например, если указать --format pfx и --export-path ./cert.pem, вы получите файл с именем cert.pem в PFX формате .

    Сведения о влиянии этого параметра при использовании с --password, --no-passwordили без этих параметров см. в разделе --export-path ранее в этой статье.

  • -i|--import <PATH>

    Импортирует предоставленный сертификат разработки HTTPS на локальный компьютер. Требуется также указать --clean параметр , который очищает все существующие сертификаты разработчика HTTPS.

    PATH указывает путь к PFX-файлу сертификата. Укажите пароль с параметром --password .

  • -np|--no-password

    Не использует пароль для ключа при экспорте сертификата в файлы формата PEM. Файл ключа экспортируется в виде обычного текста. Этот параметр не применяется к PFX-файлам и предназначен только для внутреннего тестирования.

  • -p|--password

    Указывает используемый пароль:

    • При экспорте сертификата разработки в PFX- или PEM-файл.
    • При импорте PFX-файла.

    При экспорте с --format PEMпомощью общедоступные и частные части сертификата экспортируются как пара файлов в формате PEM. Файл ключа имеет расширение .key и защищен заданным паролем. В дополнение к имени файла, указанному --export-path для параметра, команда создает еще один файл в том же каталоге с тем же именем, но с расширением .key . Например, следующая команда создаст файл с именем localhost.pem и файл localhost.key в каталоге /home/user :

    dotnet dev-certs https --format pem -ep /home/user/localhost.pem -p $CREDENTIAL_PLACEHOLDER$
    

    В примере $CREDENTIAL_PLACEHOLDER$ представляет пароль.

  • -q|--quiet

    Отображение только предупреждений и ошибок.

  • -t|--trust

    Доверяет сертификату на локальном компьютере.

    Если этот параметр не указан, сертификат добавляется в хранилище сертификатов, но не в список доверенных.

    В сочетании с параметром --check проверяет, является ли сертификат доверенным.

  • -v|--verbose

    Отображение отладочной информации.

Примеры

  • Проверьте наличие сертификата разработки и создайте его в хранилище сертификатов по умолчанию, если он еще не существует. Но не доверяйте сертификату.

    dotnet dev-certs https
    
  • Удалите все сертификаты разработки, которые уже существуют на локальном компьютере.

    dotnet dev-certs https --clean
    
  • Импорт PFX-файла.

    dotnet dev-certs https --clean --import ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$
    

    В предыдущем примере $CREDENTIAL_PLACEHOLDER$ представляет пароль.

  • Проверьте наличие доверенного сертификата разработки на локальном компьютере.

    dotnet dev-certs https --check --trust
    
  • Создайте сертификат, доверяйте ему и экспортируйте его в PFX-файл.

    dotnet dev-certs https -ep ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$ --trust
    
  • Создайте сертификат, доверяйте ему и экспортируйте его в PEM-файл.

    dotnet dev-certs https -ep ./certificate.crt --trust --format PEM
    
  • Создайте сертификат, доверяйте ему и экспортируйте его в PEM-файл, включая закрытый ключ:

    dotnet dev-certs https -ep ./certificate.crt -p $CREDENTIAL_PLACEHOLDER$ --trust --format PEM
    

См. также раздел