Azure Web 应用程序“ERR:带指纹的证书:...'在本地计算机证书存储中找不到。”
Posted
技术标签:
【中文标题】Azure Web 应用程序“ERR:带指纹的证书:...\'在本地计算机证书存储中找不到。”【英文标题】:Azure web app "ERR: Cert with thumbprint: ...' not found in local machine cert store."Azure Web 应用程序“ERR:带指纹的证书:...'在本地计算机证书存储中找不到。” 【发布时间】:2017-09-29 13:05:43 【问题描述】:我正在尝试在 Asp.NET Core 1.1 应用程序中使用 Apple 推送证书,但它找不到任何证书。
我上传了证书并将 WEBSITE_LOAD_CERTIFICATES 设置为 *(all)。
以下代码是我用来获取证书的代码
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
try
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var signingCert = certCollection.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (signingCert.Count == 0)
throw new FileNotFoundException(string.Format("Cert with thumbprint: '0' not found in local machine cert store.", thumbprint));
return signingCert[0];
我错过了什么?
【问题讨论】:
你试过StoreLocation.CurrentUser
吗?这就是我必须在 Azure 中访问已安装的应用程序证书的操作。另请参阅this answer。
是的,同样的事情
当您将WEBSITE_LOAD_CERTIFICATES
设置为指纹而不是通配符时会发生什么?
没什么,一样的
【参考方案1】:
您似乎想upload your certificate to the certificates collection in Azure Websites and consume it in your web application from your site’s personal certificate store。我正在上传我的证书并使用以下代码在 Asp.NET Core 1.1 应用程序中使用它,该代码适用于我。
X509Certificate2 retVal = null;
var thumbprint = "cert_thumbprint";
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var signingCert = certCollection.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (signingCert.Count > 0)
retVal = signingCert[0];
远程调试代码,代码在天蓝色网站上运行良好
【讨论】:
但它只适用于生产环境,在开发中仍然是空证书。以上是关于Azure Web 应用程序“ERR:带指纹的证书:...'在本地计算机证书存储中找不到。”的主要内容,如果未能解决你的问题,请参考以下文章
Azure:仅允许使用 *** 从本地访问 Web 应用程序
通过 Azure Devops 将 .Net Core 3.1 Web 应用程序部署到 Azure Linux Web 服务时出错