当前位置: 首页 > 编程语言 > C#

获取蔚蓝网站上传的证书分享

时间:2023-04-11 02:22:07 C#

获取蔚蓝网站上传的证书我在使用networkrole的时候,直接在蔚蓝门户上传证书就可以看到了。现在我已经切换到azure的网站,并将证书上传到azure管理门户,但我的代码根本看不到它是否需要一些配置,或者以其他方式从azure网站访问上传的证书。这就是我尝试访问上传的证书的方式。私有列表GetAvailableCertificatesFromStore(){varlist=newList();varstore=newX509Store(StoreName.My,StoreLocation.LocalMachine);store.Open(OpenFlags.ReadOnly);try{foreach(varcertinstore.Certificates){//todo:添加友好名称list.Add(string.Format("{0}",cert.Subject));}}最后{store.Close();}返回列表;更新-2015年7月23日:这个答案现在已经过时了(尽管它在提供时是正确的)。请参阅下面的SArmstrong的回答。Azure云服务(Web/辅助角色)和Azure网站的工作方式不同。在AzureCloudServices中,当你通过管理门户上传证书并在角色的属性中指定证书的指纹和安装位置时,当你的角色部署在VM中时,负责它的FabricController也会自动安装它给你这些证书。这就是为什么上面的代码适用于网络角色。在网站中,您需要自己执行此操作。不幸的是,由于Azure网站的安全限制,您无法在证书存储中安装证书。要使用证书,您需要将证书的PFX文件包含在您的代码中并使用该证书文件。您不能在证书存储中安装证书。在我对Azure网站和证书所做的任何小工作中,我发现证书只有在AppData文件夹中包含PFX文件时才有效。另外,您可能会遇到CryptographicException:Thesystemcannotfindthefilespecified错误CryptographicException:Thesystemcannotfindthefilespecified。如果遇到此错误,您可能会发现这篇博文很有用:http://blog.tylerdoerksen.com/2013/08/23/pfx-certificate-files-and-windows-azure-websites/在Azure网站中使用证书在IIS的本地副本中使用时或从VisualStudio以调试模式运行网站时,它的工作方式不同。简而言之,该站点无法访问传统意义上的证书存储……这一切都在内存中完成。首先,通过Azure门户上传证书后,您需要添加一个名为WEBSITE_LOAD_CERTIFICATES的应用程序设置(也通过门户)并将其值设置为您上传的证书的指纹。这可以是多个指纹的逗号分隔列表,如果您愿意,甚至可以*加载所有上传的证书。我假设这会强制将证书加载到内存中。要加载证书,您可以执行以下操作:varstore=newX509Store(StoreName.My,StoreLocation.CurrentUser);store.Open(OpenFlags.ReadOnly);varcerts=store.Certificates.Find(X509FindType.FindByThumbprint,YOUR_THUMBPRINT,false);如果要确保证书有效,请将“false”更改为“true”。我在这里找到了这个资料,比我说的好多了:http://azure.microsoft.com/blog/2014/10/27/using-certificates-in-azure-websites-applications/以上是C#学习教程:访问天蓝色网站上传的证书分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: