【问题标题】:Azure Cloud Service - SSL Signing CertificateAzure 云服务 - SSL 签名证书
【发布时间】:2015-08-03 20:36:58
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# azure azure-cloud-services


    【解决方案1】:

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

    那么,你可能需要做的是:

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

    这里的启动任务信息: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。再次 - 确保将证书捆绑在您的主机应用程序中,或者编写一个从 somehwere 下载证书的脚本 - 在调用 certutil 命令之前。

    【讨论】:

    • Jochen,感谢您的协助。我已经尝试过这种方法,但仍然失败,所以我进一步调试,结果发现我返回的 403 实际上是 403.6(被阻止的 IP)。供应商表示他们已经将保留 IP 列入白名单,但实际上他们没有。您的 sn-p 是执行此操作的正确方法,我只需要以这种方式安装中间证书,这很棒。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-07-17
    • 2015-12-15
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多