Azure云服务 - SSL签名证书

时间:2015-08-03 12:23:31

标签: c# azure azure-cloud-services

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我所做的是获取Azure云服务上的证书文件,并运行启动任务(在提升模式下)以将证书安装到计算机存储中。

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

  1. 编写用于安装证书的.cmd或powershell脚本。是 一定要将它与你的应用程序捆绑在一起(type = content,copy local = true )
  2. 确保将证书与您的应用程序捆绑在一起或编写一个powershell脚本/ cmd脚本,将证书下载到azure上 云服务
  3. 编写一个调用安装脚本的启动任务,该脚本会在计算机上安装证书。
  4. 此处有关启动任务的信息:https://msdn.microsoft.com/en-us/library/azure/hh180155.aspx。注意:您需要在“提升”中运行。模式以安装证书。

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

    Startup.cmd内 - 例如:

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

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