Azure 云服务 - SSL 签名证书

Azure Cloud Service - SSL Signing Certificate

我 运行 遇到了 Azure 云服务的一个问题,这让我有点困惑。我正在开发一个与第三方 REST API 交互的项目,该项目要求所有请求都使用 SSL 证书进行签名。在开发或生产 VM 中,这不是问题。证书通常安装在适当的商店中,然后可以通过指纹、磁盘上的文件或嵌入式资源加载,如下所示:

_certificate = new X509Certificate2(Properties.Resources.Cert,
                "password, X509KeyStorageFlags.MachineKeySet);

我现在正尝试将系统的一部分迁移到 Azure,但我很难让证书正常工作。我认为问题是来自 Symantec 的中间证书尚未安装。到目前为止,我已经尝试编写 Powershell 和批处理文件(即 certutil),我编写了 C# 代码来遍历证书链以及遍历证书集合并执行各种导入,但是 none 其中有允许使用证书成功调用。

有没有人在 Azure 云服务中自动安装和使用签名证书?如果有,您介意分享解决方案吗?

我所做的是在 Azure 云服务上获取证书文件,然后 运行 启动任务(在提升模式下)将证书安装到机器商店中。

所以,您可能需要做的是:

  1. 编写安装证书的 .cmd 或 powershell 脚本。是 确保将其与您的应用程序捆绑在一起(type = content,copy local = true )
  2. 确保将证书与您的应用程序捆绑在一起,或者编写一个 powershell 脚本/cmd 脚本,将证书下载到 azure 云服务
  3. 编写调用安装脚本的启动任务,在计算机上安装证书。

此处有关启动任务的信息:https://msdn.microsoft.com/en-us/library/azure/hh180155.aspx。注意:您需要在 'elevated' 模式下 运行 才能安装证书。

<Startup>
    <Task commandLine="Startup.cmd" executionContext="elevated" taskType="simple" >
     </Task>
 </Startup>

在您的 Startup.cmd 内 - 例如:

certutil -addstore -enterprise -f -v root Certificates\mycert.cer

摘自 here。再次 - 确保将证书捆绑在您的主机应用程序中,或者编写一个脚本从某个地方下载证书 - 在调用 certutil 命令之前。