本文适用于:✔️ .NET 6 SDK 及更高版本
“属性”
dotnet dev-certs - 生成自签名证书,以便在开发中使用 HTTPS。
摘要
dotnet dev-certs https
[-c|--check] [--check-trust-machine-readable]
[--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 终结点的证书。
- 信任本地计算机上生成的证书。
- 从本地计算机删除生成的证书。
- 导出采用各种格式的证书,以便其他工具可以使用它。
- 将工具生成的现有证书导入本地计算机。
命令
httpsdotnet dev-certs只有一个命令:https。 没有选项的dotnet dev-certs https命令检查计算机上当前用户的证书存储中是否存在开发证书。 如果命令找到开发证书,则会显示类似于以下示例的消息:A valid HTTPS certificate is already present.如果命令找不到开发证书,它将在当前用户的证书存储中创建一个证书,该存储区在位置
My中命名为CurrentUser。 证书的物理位置是随时可能更改的 .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选项结合使用,检查证书是否不仅有效,而且受信任。--check-trust-machine-readable与运行
--check --trust相同,但以 JSON 输出结果。--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证书的公共部分以 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 的文件。有关将此选项与
--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