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

2024-01-28

据我了解,如果有人不想使用自定义域名,而是计划使用 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/ https://azure.microsoft.com/en-us/blog/using-certificates-in-azure-websites-applications/以及您可以通过编程方式访问的那些证书(同一篇文章中提到的代码片段)

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不使用自定义域名时加载 Azure 证书 的相关文章

  • 使用 ADAL v3 使用 ClientID 对 Dynamics 365 进行身份验证

    我正在尝试对我们的在线 Dynamics CRM 进行身份验证以使用可用的 API 我能找到的唯一关于执行此操作的官方文档是 https learn microsoft com en us dynamics365 customer enga
  • 是否可以使用 http url 作为 DirectShow .Net 中源过滤器的源位置?

    我正在使用 DirectShow Net 库创建一个过滤器图 该过滤器图通过使用 http 地址和 WM Asf Writer 来流式传输视频 然后 在网页上 我可以使用对象元素在 Windows Media Player 对象中呈现视频源
  • EntityHydrate 任务失败

    我最近安装了 Visual Studio 11 Beta 和 Visual Studio 2010 之后 我无法在 Visual Studio 2010 中构建依赖于 PostSharp 的项目 因此我卸载了 Visual Studio 1
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • C# 根据当前日期传递日期时间值

    我正在尝试根据 sql server 中的两个日期获取记录 Select from table where CreatedDate between StartDate and EndDate我通过了5 12 2010 and 5 12 20
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 条件类型定义

    如果我有一小段这样的代码 template
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • 如何从 Boost.PropertyTree 复制子树

    我有一些boost property tree ptree 我需要树来删除一些具有特定标签名称的元素 例如 xml 表示源ptree如下
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • C:设置变量范围内所有位的最有效方法

    让我们来int举个例子 int SetBitWithinRange const unsigned from const unsigned to To be implemented SetBitWithinRange应该返回一个int其中所有
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • Streamwriter 覆盖 txt 文件中的文本

    有没有什么方法可以重新打开流写入器而不创建新的写入对象 因为此时 当调用 WriteOdd 时 streamwriter 正在覆盖在它之前调用的 WriteEven public void WriteEven StreamWriter wr
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配

随机推荐

  • Netbeans 7.2 显示“无法解析标识符”,尽管构建成功

    我正在使用Netbeans IDE 7 2 with C C 插件 最新版本 1 18 1 1 和 如果我构建我的项目 一切都很好 但 IDE 会显示错误 例如 无法解析标识符 其他人也有这个错误 我该如何解决它 这是我对另一个问题的回答的
  • NEST (elasticsearch) 在多个字段中突出显示

    我已经使用 Nest 成功获得了结果和突出显示 但如果我包含两个字段来搜索突出显示 则它在构建 elasticsearch 查询时仅使用最后一个字段 例如下列 Query qry gt qry QueryString qs gt qs Qu
  • 将 SoapHeader 添加到 org.springframework.ws.WebServiceMessage

    如何将对象添加到肥皂头org springframework ws WebServiceMessage 这是我希望最终得到的结构
  • 有没有可以替代 parse_qs 来处理分号的方法?

    TL DR 哪些库 调用可用于处理包含与 parse qs 不同的分号的查询字符串 gt gt gt urlparse parse qs tagged python ruby gt gt gt tagged python 完整背景 我正在使
  • Grafana 在 url 中传递访问令牌

    我创建了一个 API 密钥来与第三方应用程序共享 grafana 面板 我想将它嵌入到 iframe 中 但它要求我登录 如何在 url 中发送访问令牌 我一直在关注 http self issued info docs draft iet
  • 使用Python OpenCV将QR码旋转到正确的位置

    我是Python的初学者 目前正在研究二维码检测和解码 我很难将检测到的二维码旋转到正确的位置 我已经用过minAreaRect 旋转我的二维码 但它不起作用 有没有解决方法或正确的方法来做到这一点 谢谢 ROI2 cv2 imread R
  • 列出 LDAP 中的根上下文

    我想列出或搜索 LDAP 树中的根上下文 我使用 Apache Directory Server 和 Java Hashtable
  • 使用未分配的局部变量“字典”

    尽管我在以下代码中分配了值 但仍收到错误 使用未分配的局部变量 字典 private static void UpdateJadProperties Uri jadUri Uri jarUri Uri notifierUri Diction
  • 如何在真实设备上调试(使用Eclipse/ADT)

    我正在尝试弄清楚如何直接在我的手机 HTC Desire 上调试应用程序 我已经安装了手机附带的 USB 驱动程序 并且使用 adb devices 时会列出手机 如何配置 eclipse ADT 在手机上启动而不是启动模拟器 虚拟设备 注
  • ASP.NET MVC 和 WCF

    我目前正在努力学习 MVC 但在我的 在某个时刻学习 列表中 我还学习了 WCF 我只是想知道 WCF 是否应该 可以在 MVC 应用程序中使用 背景是我想要一个桌面应用程序 NET 3 5 WPF 与我的 MVC 网站交互 我想知道在两者
  • 通过单个命令安装私有和公共 NPM 软件包

    我在 package json 文件中列出了一些 npm 包 有些是公共的 有些是私有的 我想通过使用在单个命令中安装两种类型的包npm install 如果 npm 注册表设置为全局 则私有包显示404 那么如何通过单个命令来实现这一点
  • jetty-maven-插件和 loadTimeWeaver

    似乎无法让我的 Spring Web 应用程序与 jetty maven 插件一起使用 我总是得到 org springframework beans factory BeanCreationException Error creating
  • 我不懂指针

    什么是指针 什么是取消引用 如果p是一个指针 有什么区别 p some value and p other value 什么是p some variable意思是 什么是NULL指针 当取消引用 NULL 指针时会发生什么 准备一叠黄色便利
  • 运行 Quartz 作业时补偿时区偏移

    我有一个独特的问题 因为我的quartz作业调度程序实现是使用quartz net代码库版本2 0 1构建的 最近发现在运行和执行作业时时区和utc偏移量被忽略 这是该版本quartz net 中的一个继承错误 更新到版本 2 1 1 目前
  • 如何让 SQLCMD 仅输出错误和警告

    在执行 SQL 脚本文件时 如何让 SQLCMD 只输出它遇到的任何错误或警告 我本质上不希望输出基于信息的消息 这是不可能阻止的SQLCMD通过向其传递参数来返回非错误输出消息 但是 您可以做的是将错误消息重定向到STDERR 然后将所有
  • 为所有 UIViewController 实例设置全局默认后退按钮显示模式

    iOS 14 推出可配置后退按钮模式 例如 您可以在按钮上添加 后退 标签文本 但在紧凑的历史菜单中您仍然可以看到以前控制器的正确标题 我正在寻找一种简单 愉快的方法来配置默认模式 因此运行时的所有 UIViewController 实例都
  • 如何在不使用联接的情况下重写查询

    我想知道如果不使用连接 这个查询将如何编写 我一直试图找出连接不可行或无法使用 不可用 的情况 SELECT FROM table1 INNER JOIN table2 ON table1 id table2 id INNER JOIN t
  • SwiftUI macOS 列表行删除填充

    我正在尝试在 MacOS 的 SwiftUI 中的 ListView 中显示一行 但是 我的问题是该行周围包含填充 我想把它延伸到我的边界ListView 苹果使用 listRowInsets EdgeInsets 在他们的例子中 不过 这
  • Flutter - ListView.builder:初始滚动位置

    我想设置 ListView builder 的初始滚动位置 我希望列表从底部开始0 0 如果我设置reverse当然 在 listView 上 我将初始滚动位置设置为所需的位置 但我需要的是让最后一个孩子位于底部 是一个聊天应用程序 这是列
  • 不使用自定义域名时加载 Azure 证书

    据我了解 如果有人不想使用自定义域名 而是计划使用 Azure 分配给网站的 azurewebsite net 域 那么已经使用 Microsoft 的证书启用了 HTTPS 我知道这并不像与使用自定义域名一样安全 我如何才能以编程方式加载