我有一个Azure网站和一个Azure Blob,我正用它来存储.cer X509证书文件。从Azure Blob保存X509证书并在Azure网站中使用它
目标是从blob获取.cer文件并使用它执行操作(该代码位于我的Azure网站的Controller
中,并且工作正常)。
当我在本地运行的代码(不发表我的网站),它的作品,因为我将它保存在D:\
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("myContainer");
// Retrieve reference to a blob named "testcert.cer".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("testcert.cer");
// Save blob contents to a file.
using (var fileStream = System.IO.File.OpenWrite("D:/testcert.cer"))
{
blockBlob.DownloadToStream(fileStream);
}
**string certLocation = "D:/testcert.cer";
X509Certificate2 myCert = new X509Certificate2();
myCert.Import(certLocation);**
我无法弄清楚如何/在那里我可以保存它。如果我尝试使用Import方法,但输入一个url(存储证书的Azure blob的url),我得到一个错误,因为Import无法处理url。
任何想法,我可以用作在Azure网站或blob的临时存储,并从它创建一个X509Certificate
?
编辑:我想添加更多关于我试图解决的问题的细节。
从Azure blob获取证书文件并将其写入Azure网站。
使用
X509Certificate
对象创建将被用来在我写在我的控制器的方法的调用证书上.IMPORT(string pathToCert
)。
我已经能够通过手动添加.cer
文件通过FTP我的网站的wwwroot文件夹来解决1。但现在当我使用Server.MapPath("~/testcert.cer");
来获取路径获取我的证书我得到这个:D:\home\site\wwwroot\testcert.cer
显然,当导入方法使用上面,因为一旦它部署到我的蔚蓝网站的路径字符串,它不是一个有效的路径,因此我证书创建失败。
任何想法?谢谢!
关注此空间:在Azure的网站进行交接证书更好地支持即将推出:) – 2014-09-08 18:26:28