0

我按照这里的教程设置 Azure 调度程序:http: //fabriccontroller.net/blog/posts/a-complete-overview-to-get-started-with-the-windows-azure-scheduler/

我想在 Azure 网站上运行我的应用程序,但它阻止我创建 X509Certificate。

我发现这篇文章:http ://blog.tylerdoerksen.com/2013/08/23/pfx-certificate-files-and-windows-azure-websites/ 其中指出了问题:

事实证明,当您加载证书时,系统将使用本地目录来存储密钥 (??) 密钥的默认位置是在本地用户配置文件下,并且对于 Windows Azure 网站,没有本地用户配置文件目录。”

因此,按照他的建议并添加以下标志:“X509KeyStorageFlags.MachineKeySet”我可以逃脱:

CryptographicException:系统找不到指定的文件

但我现在得到:

CryptographicException:访问被拒绝。

真的没有办法从 Azure 网站使用 SDK 吗?!如果我被迫使用 WebRole 而不是 Azure 网站,它会破坏 Azure 调度程序的很多吸引力。

在这个线程中:http ://social.msdn.microsoft.com/Forums/windowsazure/en-US/cfe06e73-53e1-4030-b82d-53200be37647/load-privately-created-p12-cert-from-azureblob-and- have-it-be-trusted 似乎他们在 Azure 网站上成功创建了 X509Certificate,那么当我尝试这样做时,我的抛出“拒绝访问”有什么不同?

4

1 回答 1

2

问题在于在 PublishSettings 文件中使用 ManagementCertificate 字符串...我使用 VisualStudio 控制台在本地计算机上创建了一个自签名证书,并导出了“.cer”和“.pfx”。

将自签名的 .cer 上传到我的 Azure/设置/管理证书 将 .pfx 与我的解决方案捆绑在一起并发布到 Azure 网站

然后使用以下代码创建证书:

var certificate = new X509Certificate2(
            HttpContext.Current.Server.MapPath("~/<filename>.pfx"), "<password>", X509KeyStorageFlags.MachineKeySet);
于 2014-02-27T03:40:52.470 回答