如何在本地测试时轻松启用azure function https
How to enable azure function https easily when do local test
我想在 windows 上本地测试 Azure Function Http 触发器。
我使用 azure-function-core-tools 来 运行 命令
func start --port 5007 --useHttps
然后我收到错误消息:自动证书生成当前无法在 .NET Core 构建上运行。
看来我应该使用像这样的命令
func start --port 5007 --useHttps --cert certificate.pfx
在本地创建自签名证书后。
有没有办法轻松开启https?
像我使用.net core webapi时的方式,我很容易导出env:ASPNETCORE_URLS=https://localhost。单击某个按钮后,我可以很好地使用 https。
我们有这样的东西吗?
或者如果 func start --port 5007 --useHttps
足够但我错过了一些配置?
谢谢!
更新答案:
func start --port 5007 --useHttps
不会在 azure function v1 后自动创建证书。基于 .Net Core 的 azure function v2 和 azure function v3 工具不会为您创建证书。您应该手动生成证书。
原答案:
我可以重现你的错误:
解决方案:
使用管理员启动您的 powershell,转到您的函数应用程序文件夹,然后使用此命令:
$cert = New-SelfSignedCertificate -Subject localhost -DnsName localhost -FriendlyName "Functions Development" -KeyUsage DigitalSignature -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1")
然后创建证书文件:
Export-PfxCertificate -Cert $cert -FilePath certificate.pfx -Password (ConvertTo-SecureString -String 123 -Force -AsPlainText)
终于,我可以使用 https 了:(下面的命令在 windows cmd 中运行。)
func host start --port 5007 --useHttps --cors * --cert certificate.pfx --password 123
作为 Bowman Zhu 答案的补充,您还可以配置 VS,然后在 运行 项目时使用证书。
转到项目属性并select“调试”选项卡。在应用程序参数中,添加以下内容:
host start --useHttps --cert "certificate.pfx" --password "123"
您还可以将证书包含在您的项目中,并将其设置为“如果较新则复制”以将其部署到您的容器中。
Azure Function Core Tools (V2) 现在有一个新开关,因此您不必再使用 --cert 和 --password 开关。您现在可以使用:
host start --useHttps --useDefaultCert
此外,为了完整起见,您可以使用以下方法为 dotnet 核心创建本地自签名证书:
dotnet dev-certs https --trust
我想在 windows 上本地测试 Azure Function Http 触发器。
我使用 azure-function-core-tools 来 运行 命令
func start --port 5007 --useHttps
然后我收到错误消息:自动证书生成当前无法在 .NET Core 构建上运行。
看来我应该使用像这样的命令
func start --port 5007 --useHttps --cert certificate.pfx
在本地创建自签名证书后。
有没有办法轻松开启https?
像我使用.net core webapi时的方式,我很容易导出env:ASPNETCORE_URLS=https://localhost。单击某个按钮后,我可以很好地使用 https。 我们有这样的东西吗?
或者如果 func start --port 5007 --useHttps
足够但我错过了一些配置?
谢谢!
更新答案:
func start --port 5007 --useHttps
不会在 azure function v1 后自动创建证书。基于 .Net Core 的 azure function v2 和 azure function v3 工具不会为您创建证书。您应该手动生成证书。
原答案:
我可以重现你的错误:
解决方案:
使用管理员启动您的 powershell,转到您的函数应用程序文件夹,然后使用此命令:
$cert = New-SelfSignedCertificate -Subject localhost -DnsName localhost -FriendlyName "Functions Development" -KeyUsage DigitalSignature -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1")
然后创建证书文件:
Export-PfxCertificate -Cert $cert -FilePath certificate.pfx -Password (ConvertTo-SecureString -String 123 -Force -AsPlainText)
终于,我可以使用 https 了:(下面的命令在 windows cmd 中运行。)
func host start --port 5007 --useHttps --cors * --cert certificate.pfx --password 123
作为 Bowman Zhu 答案的补充,您还可以配置 VS,然后在 运行 项目时使用证书。
转到项目属性并select“调试”选项卡。在应用程序参数中,添加以下内容:
host start --useHttps --cert "certificate.pfx" --password "123"
您还可以将证书包含在您的项目中,并将其设置为“如果较新则复制”以将其部署到您的容器中。
Azure Function Core Tools (V2) 现在有一个新开关,因此您不必再使用 --cert 和 --password 开关。您现在可以使用:
host start --useHttps --useDefaultCert
此外,为了完整起见,您可以使用以下方法为 dotnet 核心创建本地自签名证书:
dotnet dev-certs https --trust