Dis*_*ile 5 azure-resource-manager azure-service-fabric azure-keyvault
我需要在使用ARM模板创建的Service Fabric集群中安装证书.我可以使用以下helper powershell命令使用私钥安装证书:
> Invoke-AddCertToKeyVault
Run Code Online (Sandbox Code Playgroud)
https://github.com/ChackDan/Service-Fabric/tree/master/Scripts/ServiceFabricRPHelpers
一旦此证书在Azure Key Vault中,我就可以修改我的ARM模板,以便在群集中的节点上自动安装证书:
"osProfile": {
"secrets": [
{
"sourceVault": {
"id": "[parameters('vaultId')]"
},
"vaultCertificates": [
{
"certificateStore": "My",
"certificateUrl": "https://mykeyvault.vault.azure.net:443/secrets/fabrikam/9d1adf93371732434"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
问题是Invoke-AddCertToKeyVault期望我提供一个pfx文件,假设我有私钥.
该脚本正在创建以下JSON blob:
$jsonBlob = @{
data = $base64
dataType = 'pfx'
password = $Password
} | ConvertTo-Json
Run Code Online (Sandbox Code Playgroud)
我修改了脚本以删除密码并将dataType更改为'cer'但是当我在Azure中部署模板时,它表示dataType不再有效.
如何将证书部署到不包含私钥的服务结构群集?
小智 3
1)SF并不真正关心你是否使用.cer或.pfx。SF 的所有需求是使证书在 VM 的本地证书存储中可用。
2) 您遇到的问题是 CRP 代理(将证书从 keyvault 安装到虚拟机中的本地证书存储)目前仅支持 .pfx。
所以现在你有两个选择
1)创建一个没有私钥的pfx文件并使用它
以下是如何通过 C#(或 powershell)将证书加载到 X509Certificate2 对象中然后使用 X509ContentType = Pfx 的导出方法 https://msdn.microsoft.com/en-us/library/24ww6yzk(v=vs.110 ).aspx
2) 使用自定义 VM 扩展部署 .cer。由于 .cer 只是一个公钥证书,因此不应该有隐私要求。您只需将证书上传到 blob,然后让自定义脚本扩展下载它并将其安装在计算机上。
| 归档时间: |
|
| 查看次数: |
1780 次 |
| 最近记录: |