gpt4 book ai didi

c# - 不使用自定义域名时加载 Azure 证书

转载 作者:行者123 更新时间:2023-11-30 14:50:04 25 4
gpt4 key购买 nike

据我了解,如果有人不想使用自定义域名,而是计划使用由 Azure 分配给网站的 *.azurewebsite.net 域,那么已经使用 Microsoft 的证书启用了 HTTPS(我知道这一点)不如使用自定义域名安全)。我如何才能以编程方式加载此证书。目前我使用以下方法从本地计算机或Azure加载证书:

public static X509Certificate2 LoadFromStore(string certificateThumbprint,bool hostedOnAzure)
{
var s = certificateThumbprint;

var thumbprint = Regex.Replace(s, @"[^\da-zA-z]", string.Empty).ToUpper();

var store = hostedOnAzure ? new X509Store(StoreName.My, StoreLocation.CurrentUser) : new X509Store(StoreName.Root, 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 certificate store. Also number of certificates in the sotre was {1}", thumbprint, store.Certificates.Count));
}

return signingCert[0];
}
finally
{
store.Close();
}
}

我认为罪魁祸首是以下代码行:

new X509Store(StoreName.My, StoreLocation.CurrentUser) 

因为当我收到异常时,它告诉我商店中没有证书,尽管我通过了正确的证书指纹(我手动从 Chrome 获取指纹)。

最佳答案

您将无法在 Web 应用程序中以编程方式访问此证书,因为此证书并未真正安装在 Azure Web 应用程序上。 Azure WebApps 有一个前端服务器,它执行“某种”SSL 卸载,因此 WebApp 实际上永远无法访问此特定证书。您到底为什么要阅读此证书?

通常,如果 Web 应用程序中需要证书,您将安装客户端证书并将其传递给服务进行身份验证,如 https://azure.microsoft.com/en-us/blog/using-certificates-in-azure-websites-applications/ 中所述。以及您可以通过编程方式访问的那些证书(同一篇文章中提到的代码片段)

但我不确定您到底想通过阅读服务器证书实现什么目的

关于c# - 不使用自定义域名时加载 Azure 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37592072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com