如何禁用客户端 GRPC 服务器证书主机名验证?

2023-12-06

目前我正在为 gRPC 客户端设置通道身份验证,如下所示:

std::shared_ptr<grpc::ChannelCredentials> channel_creds;
auto metadata = grpc::ChannelArguments();

// ...
grpc::SslCredentialsOptions sslOpts{};
sslOpts.pem_root_certs = // PEM with the Root CA cert's public key
sslOpts.pem_cert_chain = // PEM for client cert's public key
sslOpts.pem_private_key = // PEM for client cert's private key

channel_creds = grpc::SslCredentials(sslOpts);
metadata.SetSslTargetNameOverride(mbServerCertSubjectName.second.get());

// ...
grpc::CreateCustomChannel(addr_str, channel_creds, metadata);

这几乎是完美的,但我想禁用证书名称验证:我只想接受任何内容,只要它链接到pem_root_certs我提供的。

如果我可以创建一个,这似乎是可以实现的TlsChannelCredentials选项结构及其grpc_tls_server_verification_option字段设置为 GRPC_TLS_SKIP_HOSTNAME_VERIFICATION,但接口TlsCredentials选项与 SslCredentialsOptions 完全不同,我不知道如何将其设置为根据我在此处提供给 sslOpts 的 PEM 文件进行身份验证。

如何将所需的逻辑转换为 TlsChannelCredentialsOptions?


试试这个:

grpc::ChannelArguments gargs;
gargs.SetSslTargetNameOverride("domian name you want to ignore");

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

如何禁用客户端 GRPC 服务器证书主机名验证? 的相关文章

  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • try-catch 中未处理的异常

    try list from XElement e in d Descendants wix File where e Attribute Name Value Contains temp Name e Parent Parent Attri
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu

随机推荐

  • 在不知道最后页码的情况下跨多页进行网页抓取

    运行我的网站代码来抓取分布在多个页面上的不同教程的标题 我发现它工作完美 我尝试编写一些代码 不依赖于 url 的最后页码 而是依赖于状态代码 直到它显示 http status200 我在下面粘贴的代码在这种情况下运行得很好 然而 当我尝
  • 中间件中运行的线程正在使用父级实例变量的旧版本

    我用过Heroku 教程实现网络套接字 它适用于 Thin 但不适用于 Unicorn 和 Puma 此外还实现了回显消息 它响应客户端的消息 它在每个服务器上都能正常工作 因此 websockets 实现没有问题 Redis设置也是正确的
  • 具有多个 URL 的 Swagger UI

    我在 swagger ui 文档中看到您可以提供一个 urls 参数 它是 Topbar 插件使用的 API 定义对象数组 url name 当使用并且启用Topbar插件时 url参数将不会被解析 名称和 URL 在此数组中的所有项目中必
  • 使用 PHP 从 div 类中提取所有内容(包括 HTML)

    HTML 示例 table tr td class rsheader b Header Content b td tr tr td class rstext Some text Most likely will contain lots o
  • jquery ajax jqXHR.status 始终为 0

    我正在尝试使用 jquery 通过 AJAX 提交表单
  • QML 打开 GUI 窗口和控制台

    我正在尝试获得一个可用的 QML 应用程序 一切都很好 除了当我运行我的应用程序时它会打开 QML 窗口但也会打开控制台窗口 为什么 这是代码 int main int argc char argv QApplication app arg
  • WPF 组合框不响应鼠标

    我对 WPF ComboBox 有一个非常奇怪的问题 在我们公司的一台计算机 而且只有一台 上 当 ComboBox 下拉列表打开时 WPF ComboBox 拒绝响应鼠标事件 当用户单击组合框以显示下拉菜单并尝试选择一个项目时 他 她不会
  • 函数参数 dtype 声明不起作用?

    为什么这不返回 12 号应该连接两个字符串 而不是相加 def foo a str b str print a b foo 1 2 3 这不是注释的用途 注释是metadata 不是 Python 转换数据的指令 来自函数定义参考文档 参数
  • 如何使我的 Linq to Sql 实体实现 INotifyPropertyChanged

    我在 Linq to sql 设计器中手动创建了一些类 在查看 xx designer cs 文件时 该类没有实现 INotifyPropertyChanged 接口 如果我通过从服务器资源管理器拖动来创建实体 则此方法有效 有谁知道这是为
  • 两个密度图之间的差异

    有没有一种简单的方法来绘制两个概率密度函数之间的差异 我可以在同一个图上一起绘制数据集的 pdf 都是具有大约 11000 个值的一维向量 以了解重叠 差异 但如果我能看到以下图 那对我来说会更有用区别 类似于以下内容 尽管这显然不起作用
  • QuickBlox 不发送 APNS

    突然 我在通过 QuickBlox 发送 APNS 时遇到错误 这很奇怪 因为它之前工作得很好 用户登录后 我使用 TRegisterSubscriptionWithDelegate 为 APNS 注册它 发送 APNS 时错误是 没有收件
  • 使用 PowerShell 处理 Java CLI 应用程序生成的错误

    我使用 PowerShell 调用 Java CLI 应用程序 我希望能够捕获 Java 错误并在 PowerShell 中处理它们 我正在通过尝试获取 Java 版本来模拟这一点 如果我使用有效的参数 version version pr
  • 在 Asp.net 中创建 pdf 文件

    字符串s 姓名 恩恩恩 年龄 DD 我需要将此字符串转换为 pdf 文件 有人可以帮我吗 iTextSharp 表格简介 NET 框架不包含任何处理 PDF 文件的本机方法 因此 如果您想要生成或使用 PDF 文件作为 ASP NET We
  • Javascript:如何获取 p 标签内的文本字符串数组

    假设我有一个带有很多 p 标签的字符串 var myString p Some text p p Some more Some more text p p And even some more text p 如何获取一个数组 数组中的每个项
  • Git中添加但未提交的已删除文件可以恢复吗? [复制]

    这个问题在这里已经有答案了 我是 git 的新手 我刚刚犯了一个愚蠢的错误 我通过 rm 命令删除了一些重要的文件 但是 我确实使用 git add 来添加这些文件 但没有提交 删除尚未添加 那么有什么办法可以恢复这些被删除的文件呢 任何建
  • 检查 RichTextBox 上选定的文本是否全部粗体

    如何检查 RichTextBox 上选定的文本是否全部粗体 例如 asdasdasdasd 这并不都是粗体 我都很大胆 这都是粗体 这是我编写的代码 它可以检查是否全部粗体 但速度很慢 因为它使用一一检查字符Selection Start
  • 初始化 SSL 和 libcurl 并出现“内存不足”

    我打算使用 C 程序使用 libcurl 和 openssl 执行 https 请求 我初始化了 libcurlcurl global init CURL GLOBAL ALL 如文档中所述 然后我用一个curl easy处理我初始化的内容
  • 将 std::cout 重定向到 QTextEdit

    是否可以 更重要的是如何 将输出流重定向到 QTextBox 所以如果我写std cout lt lt test 应用程序中的任何位置它都会被重定向到我定义的文本框吗 我尝试了显而易见的方法 其中 ui textEdit 是指向文本编辑框的
  • 如何限制对 PHP 文件的访问?

    我想限制对我的服务器上的 PHP 文件的访问 该 PHP 文件从 HTTP GET 请求获取数据并将其附加到文件中 简单的 但我不希望执行此 PHP 文件 除非 HTTP 请求是从我开发的智能手机应用程序中生成的 我不想单独验证每个用户的身
  • 如何禁用客户端 GRPC 服务器证书主机名验证?

    目前我正在为 gRPC 客户端设置通道身份验证 如下所示 std shared ptr