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
命令管理自签名证书,以便在本地 Web 应用开发中使用 HTTPS。 其主要功能包括:
在开发过程中生成用于 HTTPS 终结点的证书。
信任本地计算机上生成的证书。
从本地计算机删除生成的证书。
导出采用各种格式的证书,以便其他工具可以使用它。
将工具生成的现有证书导入本地计算机。
https
dotnet dev-certs
只有一个命令:https
。 没有选项的 dotnet dev-certs https
命令检查计算机上当前用户的证书存储中是否存在开发证书。 如果命令找到开发证书,则会显示类似于以下示例的消息:
A valid HTTPS certificate is already present.
如果命令找不到开发证书,它将在当前用户的证书存储中创建一个证书,该存储区在位置 CurrentUser
中命名为 My
。 证书的物理位置是随时可能更改的 .NET 运行时的实现详细信息。 在 .NET 7.0 中的 macOS 上,证书存储在用户密钥链中,并作为 PFX 文件存储:~/.aspnet/https-aspnetcore-localhost-<Thumbprint[0..5]>.pfx。
创建证书后,该命令会显示类似于以下示例的消息:
The HTTPS developer certificate was generated successfully.
默认情况下,新创建的证书不受信任。 若要信任证书,请使用 --trust
选项。
若要创建可用于其他工具的文件,请使用 --export-path
选项。
-c|--check
检查是否存在开发证书,但不执行任何操作。 将此选项与 --trust
选项结合使用,检查证书是否不仅有效,而且受信任。
--clean
使用 .NET 证书存储 API 从证书存储中删除所有 HTTPS 开发证书。 不要删除使用 --export-path
选项创建的任何物理文件。 在 .NET 7.0 中的 macOS 上,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 --password --format PEM
证书的公共和私有部分以 PEM 格式的文件对形式导出。 密钥文件具有 .key 扩展名,并受给定密码的保护。
--export-path --no-password --format PEM
证书的公共和私有部分以 PEM 格式的文件对形式导出。 密钥文件具有 .key 扩展名,以纯文本形式导出。 选项 --no-password
仅用于内部测试。
与 --export-path
一起使用时,指定导出的证书文件的格式。 有效值为 PFX
和 PEM
,不区分大小写。 PFX
是默认值。
文件格式与文件扩展名无关。 例如,如果指定 --format pfx
和 --export-path ./cert.pem
,你将获得 PFX
格式的名为 cert.pem 的文件。
有关将此选项与 --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 的文件。 例如,以下命令将在 /home/user 目录中生成名为 localhost.pem 的文件和名为 localhost.key 的文件:
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
通过 .NET CLI 生成自签名证书
在 ASP.NET Core 中强制使用 HTTPS
排查证书问题,例如证书不受信任
使用 Docker over HTTPS 托管 ASP.NET Core 映像
使用 Docker Compose 通过 HTTPS 托管 ASP.NET Core 映像