如何将私钥证书 (.pfx)、公钥证书 (.cer) 上传到 Azure WebApp

2023-12-13

如何使用 Azure Powershell 将私有公共证书上传到 Azure 应用服务。我知道 New-AzureRmWebApp SSLBindings,但我没有进行任何 SSL 绑定。

我们有使用 SSL 绑定的 Azure 应用服务。为此,我使用 New-AzureRmWebAppSSLBinding 上传证书。我确实为网络应用程序上的每个主机上传了一个证书。这很好用。 但我想将额外的私有和公共证书上传到此应用程序服务以进行 API 验证。我没有找到任何 azure powershell 命令来上传私有或公共证书。

Azure 门户允许上传私有证书及其密码或公共证书。不过我想使用 powershell 做同样的事情。门户 UI 还可以选择从密钥保管库导入证书。我确实可以将证书上传到密钥保管库,但没有 powershell 命令将其导入到 Azure 应用程序服务。

<a href="https://ibb.co/Kh7t5DL"><img src="https://i.ibb.co/fFt3X9n/Capture-Cert.jpg" alt="Capture-Cert" border="0"></a>

我已经阅读了这些文章,但它们都使用相同的命令。https://github.com/Azure/azure-powershell/issues/2108 如何使用 Powershell 将证书添加到 Azure RM 网站

New-AzureRmWebAppSSLBinding -ResourceGroupName $RGName -WebAppName $webAppName -CertificateFilePath $filePath -CertificatePassword $pass

如果我调用此方法,它会询问主机名。由于我已经为此主机名上传了具有 SSL 绑定的证书,因此我无法使用它。如果不提供主机名,此命令将失败。


好吧,终于我能够弄清楚并上传私人和公共证书。Azure 资源浏览器对于理解文件夹结构和证书位置确实很有帮助。

上传公共证书:这些是根据应用程序服务附加的。

$webApps = @{
            "Dev_AppServicesGroup" = "DevUserService"
        }
$certName = "chain-cert.cer"
$Path = "C:\Certs"    

$fullpath = $path + '\' + $certname
$pwd = ConvertTo-SecureString -String 'anyPwd' -AsPlainText -Force
$cert  = New-AzureRmApplicationGatewaySslCertificate -Name 'someCert' -CertificateFile $fullpath -Password $pwd
$apiVersion = '2018-02-01'

if($cert)
{
    $PropertiesObject = @{
        blob=$cert.Data; 
        publicCertificateLocation= "CurrentUserMy"
    }

    foreach($resourceGroup in $webApps.Keys)
    {
       $webAppName = $webApps.Item($resourceGroup)        
       $resource = Get-AzureRmWebApp -ResourceGroupName $resourceGroup -Name $webAppName
       $resourceName = $resource.Name + "/"+$certName
       New-AzureRmResource -Location $resource.Location -PropertyObject $PropertiesObject -ResourceGroupName $resource.ResourceGroup -ResourceType Microsoft.Web/sites/publicCertificates -ResourceName $resourceName -ApiVersion $apiVersion -Force        

       #Apply the cert to the deployment slots if any
       $slots = Get-AzureRmResource -ResourceGroupName $resource.ResourceGroup -ResourceType Microsoft.Web/sites/slots -ResourceName $webAppName -ApiVersion $apiVersion
       foreach($slot in $slots)
       {            
          $resourceName = $slot.Name + "/"+$certName                     
          New-AzureRmResource -Location $slot.Location -PropertyObject $PropertiesObject -ResourceGroupName $slot.ResourceGroupName -ResourceType Microsoft.Web/sites/slots/publicCertificates -ResourceName $resourceName -ApiVersion $apiVersion -Force            
       }
    }
}

上传私有证书:这些内容按资源组上传,可供该组下的所有应用服务使用。

#Private certs needs to be uploaded to each resource group with app services
$resourceGroups = @("Dev_AppServicesGroup1", "Dev_AppServicesGroup2")
$certName = "event-store-user.p12"

$certPwd = "Your certificate password" #This is the private cert password
$Path = "C:\Certs"   

$fullpath = $path + '\' + $certname    

$pwd = ConvertTo-SecureString -String 'SomePwd' -AsPlainText -Force
$cert  = New-AzureRmApplicationGatewaySslCertificate -Name someCert -CertificateFile $fullpath -Password $pwd
$apiVersion = '2018-02-01'

if($cert)
{
    $PropertiesObject = @{
        pfxBlob=$cert.Data;  
        password =$certPwd; #This is the private cert password        
        ResourceType = "Microsoft.Web/Certificates"
    }

    foreach($resourceGroup in $resourceGroups)
    {
        $resource = Get-AzureRmResourceGroup -Name $resourceGroup       
        New-AzureRmResource -ResourceName $certName -Location $resource.Location -PropertyObject $PropertiesObject -ResourceGroupName $resource.ResourceGroupName -ResourceType Microsoft.Web/certificates -ApiVersion $apiVersion -Force        
    }
}

就是这样。若要上传 SSL 证书并将其绑定到应用服务,可以使用命令“New-AzWebAppSSLBinding”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将私钥证书 (.pfx)、公钥证书 (.cer) 上传到 Azure WebApp 的相关文章

随机推荐

  • 如何为单个绘图实例创建两个图例对象?

    我使用以下示例代码生成条形图 import numpy as np import matplotlib pyplot as plt x np linspace 0 5 5 y np exp x w x 1 x 0 colors blue i
  • 如何从命令提示符编译 servlet?

    我想编译一个非常基本的servlet从命令提示符 但它总是不成功 编译器告诉我以下内容 error package javax servlet does not exist 我用谷歌搜索了解决方案 发现我需要包括servlet jar库到我
  • 鼠标光标跳转到 IE 文本输入字段中字符串的开头

    当我单击其中包含文本的文本字段并将焦点设置到字符串的末尾 大多数人通常会这样做 时 光标的焦点会跳转到字符串的开头 这只发生在 IE 中 该应用程序是带有 jquery 和 javascript 的 MVC 2 如何调试这一行为 我不能使用
  • 如何迭代 JSONObject?

    我使用一个名为的 JSON 库JSONObject 如果需要的话我不介意切换 我知道如何迭代JSONArrays 但是当我解析来自 Facebook 的 JSON 数据时 我没有得到一个数组 只有一个JSONObject 但我需要能够通过其
  • 根据声音相似度确定弦之间的距离

    两个单词之间相似性的定量描述是基于它们的发音 发音 类似于编辑距离吗 我知道 soundex 给了相同的 id发音相似词 但据我理解 它不是词之间差异的定量描述 from jellyfish import soundex print sou
  • 删除源文件后,FileInputStream 仍然可以读取

    我在android中遇到了一个很奇怪的问题 在我的应用程序中 我将从缓存目录上传文件 如果用户在我的应用程序上传文件时使用诸如 cleanmaster 之类的清洁应用程序来清除我的应用程序的缓存目录 则所有文件都会被删除 但上传任务根本不会
  • 如何检测 Perl 中的空行?

    在 Perl 中如何检查一行 值 是否为空行 或其他 检查它而不是使用 的好方法 我想这样编码 if eq 检查当前行是否为空行 没有任何字符 x 0 我用下面的问题解决方案更新了一些代码 My test txt用于解析 constant
  • 从 SQL Server 表生成 INSERT 语句

    我有一个包含 330 万条记录的表 并且不想将整个内容从开发复制到生产 在客户端控制的计算机上并且无法使链接服务器正常工作 我只想复制其中 300 条左右的记录 如何生成 300 条插入语句 我想要插入的选择 SQL 是 select fr
  • 如何在 Windows 7 中查找已安装应用程序的 UpgradeCode 和 ProductCode

    我的机器上安装了一个应用程序 我也有它的源代码 但不知何故该应用程序的 ProductCode 和 UpgradeCode 被更改了 现在我想获取此已安装应用程序的 UpgradeCode 和 ProductCode 我觉得必须有一些工具可
  • 如何利用混淆矩阵的值绘制ROC曲线?

    考虑我有一个像这样的分类器A其分类结果如下表 TP TN FP FN A 225 100 175 100 TP 为真阳性 TN 为真阴性 FP 为误报 FN 为假阴性 如何绘制ROC曲线 我知道 我可以定义一个变量 并尝试根据 A 来预测它
  • 嵌套gridview获取父行

    我正在使用嵌套 GridViews 其中的每一行gridview有子gridView 我在用行数据绑定事件父网格视图 到绑定子网格视图 我的问题是 如何获取子 gridView 上父 GridView 的密钥行数据绑定 Event 下面是示
  • document.getElementById insideHTML 不显示

    这应该是一件很容易做的事情 但它不会返回任何东西 函数 love 应该启动 得到一个简单的数字提示 并吐出使用该起始数字的一些项目的列表 警报框正确显示了我所期望的内容 但我希望它显示在屏幕上 这只是我所追求的一小部分 但它是它的核心 IE
  • 滚动后的 div(不是位置:固定)

    我前段时间找到过 现在找不到了 我想找到像苹果商店里的购物车这样的东西 它是一个既不绝对也不固定的div 例如 假设它位于屏幕的中心 只有当你向下滚动时 它才会跟随滚动而不是消失 当它到达浏览器标题的边框时 我不确定我是否清楚 我已经搜索过
  • NHibernate 上值对象的单独表

    我是 DDD 和 NHibernate 的新手 在我当前的项目中 我有一个实体 Person 它包含一个值对象 比如说 Address 今天 这很好 但也许有一天我会要求我的值对象 在本例中为地址 必须成为一个实体 在尝试以 DDD 方式对
  • TCP 异步套接字抛出 10057

    我编写了以下代码 public static void BeginListen int port IPAddress address IPAddress Any IPEndPoint endPoint new IPEndPoint addr
  • 如何在 WMIC 中转义逗号(如字符串)

    我希望能够运行如下查询 wmic path Win32 Service where DisplayName like FooBarService X Y get 但是 由于类似字符串中的逗号 它不起作用 我收到的错误是 动词无效 我尝试用反
  • 如何显示保留两位小数的浮点数? [复制]

    这个问题在这里已经有答案了 我有一个采用浮点参数 通常是整数或具有一位有效数字的小数 的函数 并且我需要输出具有两位小数的字符串中的值 5 5 00 5 5 5 50 等 我怎样才能在Python中做到这一点 由于这篇文章可能会发布一段时间
  • 将列添加到 Crystal Report 的数据集 (xsd)

    我正在编写一份报告 需要将一列添加到我的一个数据集和 RPT 文件中 但是当我尝试修改数据集时 收到错误消息 指出指定的表不存在 当我查看代码时 看起来最初有一个表用于此目的 但这种方法已被放弃 现在是通过附加到报告的代码中的数据集来完成的
  • 将文件名分配给 shell 中的变量

    我正在尝试编写一个脚本 它的功能比我要向您展示的功能更复杂一些 但我知道问题出在这部分 我希望通过以下方式将目录中文件列表的每个名称分配给一个变量 同一变量 一次一个 for循环 然后用这个在循环内部做一些事情 看看是什么意思 for th
  • 如何将私钥证书 (.pfx)、公钥证书 (.cer) 上传到 Azure WebApp

    如何使用 Azure Powershell 将私有公共证书上传到 Azure 应用服务 我知道 New AzureRmWebApp SSLBindings 但我没有进行任何 SSL 绑定 我们有使用 SSL 绑定的 Azure 应用服务 为