首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用OpenSSL而不是BoringSSL构建gRPC++

gRPC++是gRPC的C++实现,它使用BoringSSL作为默认的加密库。然而,如果你想使用OpenSSL而不是BoringSSL构建gRPC++,你可以按照以下步骤进行操作:

  1. 首先,确保你已经安装了OpenSSL库和开发包。你可以从OpenSSL官方网站下载并安装适合你操作系统的版本。
  2. 在构建gRPC之前,需要修改gRPC的构建配置文件。找到gRPC源代码中的CMakeLists.txt文件,可以在根目录下或者cmake文件夹下找到。
  3. 打开CMakeLists.txt文件,在文件中搜索关键字boringssl,通常可以在多个地方找到。将所有与BoringSSL相关的行注释掉或删除。
  4. 在文件中搜索关键字openssl,找到与OpenSSL相关的行。确保这些行没有被注释掉,如果有注释,请取消注释。
  5. 保存并关闭CMakeLists.txt文件。
  6. 接下来,按照正常的gRPC构建流程进行构建。具体步骤可以参考gRPC官方文档中的构建指南。

使用OpenSSL而不是BoringSSL构建gRPC++的好处是,你可以利用OpenSSL提供的更多功能和特性。OpenSSL是一个强大且广泛使用的加密库,它支持多种加密算法和协议,包括SSL/TLS、数字证书、对称加密和非对称加密等。通过使用OpenSSL,你可以获得更高级的加密和安全性。

在使用gRPC++时,你可以根据具体的需求选择适合的加密方式和算法,以保护通信数据的安全性。同时,OpenSSL还提供了丰富的工具和函数库,可以帮助你进行加密、解密、签名、验证等操作。

在腾讯云中,你可以使用腾讯云SSL证书服务来获取和管理SSL证书,以确保通信的安全性。腾讯云SSL证书服务提供了多种类型的证书,包括DV(域名验证)、OV(组织验证)和EV(增强验证)证书,适用于不同的安全需求。你可以通过腾讯云SSL证书服务的官方文档了解更多信息,并获取适合你的证书。

希望以上信息对你有所帮助!如果你还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用DDD来构建你的REST API,而不是CRUD

REST围绕着资源这个概念而构建的,然后用URI来表示。然后一个HTTP动词和资源URI组合起来对指定资源进行HTTP调用来执行操作。...让我们来谈谈U.通用更新方法允许客户端更新资源的任何字段,然后使用新版本覆盖现有版本。但是,如果允许客户端执行这样的操作,您的服务API在其使用的任何底层数据存储之上,所能提供的价值其实是很小的。...首先,客户端不应该调用一个API,然后就把账户余额更新为他们想要的数量,这不是乱套了吗?!帐户可能有最低余额。...当然,并不是说你必须使用DDD来设计你的REST,但是,由于REST资源可以很好地映射到DDD实体,因此我发现设计REST API特别适合使用DDD。 那么这是什么意思?...因此不应该按照CRUD模型来构建你的serviceAPI(REST 或其他),而应该是使用DDD,DDD可以根据领域对象和可对其执行的业务操作来定义API。

2.2K50

为什么我们选择使用 React 而不是 Angular 构建新 UI

使用 React 构建应用程序是将这些组件中的许多组合在一起,将应用程序 UI 带入生活 -- 非常像乐高玩具!...这些封装的组件管理自己的状态,因为组件逻辑是用 JavaScript 而不是模板编写的,你可以轻松地通过应用程序传递丰富的数据,而不用担心 DOM 中的状态。...使用 React,你应该永远记住,它实际上并不是一个 JS 框架,而是一个用于渲染视图的库。...是什么使得 React 与众不同 React 本身不是一个框架。如前所述,它应该被认为是视图渲染引擎或组件模型。 React 提供可重复使用的可配置组件,让您快速入门。...因此,在工程中,我们使用监控和数据收集来了解哪些虽然需要花费时间来投入,以及如何最好地利用我们的资源。

2.3K30
  • 为什么我们选择使用 React 而不是 Angular 构建新 UI

    这些封装的组件管理自己的状态,因为组件逻辑是用 JavaScript 而不是模板编写的,你可以轻松地通过应用程序传递丰富的数据,而不用担心 DOM 中的状态。...使用 React,你应该永远记住,它实际上并不是一个 JS 框架,而是一个用于渲染视图的库。...是什么使得 React 与众不同 React 本身不是一个框架。如前所述,它应该被认为是视图渲染引擎或组件模型。 React 提供可重复使用的可配置组件,让您快速入门。...结论 当你考虑转向使用 React 或基于 React 构建时,了解你的数据以及你希望将如何发展是你在迈步前进之前必须弄清楚的。例如,React 使用单向数据绑定,其中数据流仅以单一方式进行。...因此,在工程中,我们使用监控和数据收集来了解哪些虽然需要花费时间来投入,以及如何最好地利用我们的资源。

    2.7K60

    适配Boringssl和OpenSSL 3.0

    在升级 [openssl] 3.0 和 boringssl 还是碰到了一些问题的,有些是由于接口变化,有些是由于功能支持还有些也和构建系统相关。还是有必要记录一下,至少能方便以后查找。...然后在代码适配层面,boringssl 比较激进似乎删掉了很多不是那么古老的算法,其中就包含 DH 密钥交换。...在 cmake 不使用 * Makefile 而使用 Ninja 作为构建系统Generator时,CMAKE_MAKE_PROGRAM 这个变量指向的是 ninja 。...而像 openssl 这类在 Unix Like 系统下只能用 Makefile 的 packages 来说,就不能透传 CMAKE_MAKE_PROGRAM 作为构建工具,必须自己查找。...这些都是构建系统上需要适配的内容。 在接口和功能上, openssl 正在逐步淘汰古老的低级API,转而使用高级版本的接口 EVP_PKEY_* 等。

    2.3K30

    不要重复发明轮子!谷歌:我偏要

    其核心意思是,对于一些已经成熟且高效的功能或模块,我们应当直接使用,而不是重复开发。 对于大多数程序员来说,这句话确实有其道理。...然而,OpenSSL 代码库庞大且复杂,维护和更新的难度也很大。谷歌在使用 OpenSSL 时积累了大量补丁,其中一些被合并到 OpenSSL 主分支,但多数未能如此。...尤其是在 OpenSSL 曝出 Heartbleed 漏洞后,谷歌决定自行维护一个 SSL 库,选择从 OpenSSL 中分叉出 BoringSSL。...当前,BoringSSL 在 GitHub 上托管和开源,使用 BSD 授权协议。 BoringSSL 允许谷歌根据具体项目需求进行定制化开发,而不需要依赖 OpenSSL 的主库。...这一做法同样对国内的技术发展具有启示意义,尤其是在构建操作系统这样复杂的系统软件时,如何通过自主创新与开源合作相结合,推动技术的进步与生态的建设。

    7810

    【Rust日报】2024-02-28 Pingora 开源

    主要特点包括: 异步 Rust:快速可靠 HTTP 1/2 代理 基于 OpenSSL 或 BoringSSL 的 TLS gRPC 和 WebSocket 代理 优雅的重载 可定制的负载均衡和容错策略...支持各种观测工具 使用 Pingora 的理由包括: 安全性是首要考虑因素:对于用 C/C++ 编写的服务,Pingora 是一种更安全的替代方案。...快速入门指南介绍了如何轻松构建负载均衡器。用户指南涵盖了更多主题,如如何配置和运行 Pingora 服务器,以及如何在 Pingora 框架上构建自定义 HTTP 服务器和代理逻辑。...Pingora-proxy:构建 HTTP 代理的逻辑和 API。 Pingora-error:Pingora crate 中使用的常见错误类型。...Pingora-openssl & pingora-boringssl:SSL 相关的扩展和 API。 Pingora-ketama:Ketama 一致性算法。

    41610

    Envoy 中 TLS 的加速和优化

    Envoy 使用的 TLS Library 是 BoringSSL,而不是 OpenSSL,因此不能直接通过 QAT Engine 来使用上面的两种加解密技术。...这种方式的原理是使用社区提供的 envoy-openssl 项目来将 Envoy 原生的 TLS Library 由 BoringSSL 替换成 OpenSSL,然后再通过上文中提到的 QAT Engine...上面的两种加解密技术和这两种使用方式进行组合,最终会生成四种不同的使用方案: --- Envoy+BoringSSL Envoy+OpenSSL QAT 方案 1 方案 3 Multi-Buffer 方案...在执行时,Envoy 调用 BoringSSL 进行 TLS 握手,而 BoringSSL 则会通过回调函数来调用 QAT Library 进而调用 QAT 硬件设备完成相关的加解密操作。...接着详细说明了第一种使用方案的具体编译和部署过程,以及最终如何进行测试和使用。我们会在后续的文章中,针对其它几种方案进行分享。

    2.1K31

    给cmake-toolset和工具链加HTTP2和HTTP3支持

    而Google的quiche官方仅有对bazel构建系统的支持,而我的cmake-toolset是cmake生态的。 这里选用 nghttp3+ngtcp2 的组合,主要是为了和其他的模块共享依赖。...那目前官方版本的 openssl 是不支持的。我们可以选用 quictls版本的openssl 或者 boringssl。...首先是我们需要让他们使用我们自己的 openssl 库。它们的构建脚本都可以让我们自己指定 openssl 的位置。...在使用 boringssl 的时候,因为使用了非标准的老式引入方式(非cmake CONFIG模式),我们指定 -DBORINGSSL_LIBRARIES= 的时候包含多个库文件。...另外还碰到在Windows平台上,curl 缺失链接了几个 openssl 依赖的系统库,导致检测依赖库的时候链接失败而检测失败,这些库也是补上就好了。整体来说 curl 的整个工程质量还是很高的。

    79620

    让大象起舞第二弹---HTTPS计算性能优化

    如何优化呢?思路如下: 算法分离。将最消耗CPU计算的过程分离出来,释放本地CPU,提升整体吞吐性能。 并行计算。使用SSL硬件加速卡或者空闲CPU并行计算,提升计算效率。 异步代理。...前面也提到过openssl的一些问题,事实也被业界诟病了很久,直到heartbleed漏洞爆发后,google和openbsd先后推出了openssl的fork版本,那么我们该如何做出选择呢?...openssl,boringssl, libressl的选择。 boringssl 最开始打算选用boringssl,它是google推出的基于openssl的fork 版本。...但是很快我们就放弃了boringssl,原因是: boringssl虽然是一个开源库,但它只是面向google自家使用,并不提供通用的兼容性和稳定性保证,官方网站明确说明不提供API,ABI的可靠性保证...如何优化呢?通过异步代理的方式显然不可能。原因是:会极大降低用户访问速度。由于应用层的每一个字节都需要对称加解密,使用异步的方式实现会严重降低加解密的实时性。 那有没有同步的优化方式呢?有。

    1.2K10

    使用Burp拦截Flutter App与其后端的通信

    Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter应用程序是用Dart编写的,这是一种由Google在7年多前创建的语言。...Dart使用Google的BoringSSL来处理与SSL相关的所有内容,幸运的是Dart和BoringSSL都是开源的。...如果我们更改这个值,它仍会因为上面的ssl_send_alert()函数调用而失败(相信我,我试过)。 让我们找一个更好的hook的方法。...在session_verify_cert_chain函数中多次调用OPENSSL_PUT_ERROR宏,这样可以使用Ghidra轻松的找到正确的方法。...由于BoringSSL库较为稳定,因此这种方法可能会在未来很长一段时间内都有效。 禁用 SSL Pinning(SecurityContext) 最后,让我们看看如何绕过SSL Pinning。

    2.7K00

    近期cmake-toolset的一些适配问题

    其中,相对独立且同时也被其他的项目使用的一个工具则是基于 cmake 和 git 且兼容 vcpkg 的构建系统 cmake-toolset 。...那么先来记录一下构建系统适配过程中的一些问题吧。 增加 boringssl 支持,升级 openssl 到 3.0.0 之前 gRPC 的依赖使用的是 openssl 。...其实官方默认的SSL库用的是 boringssl 。 boringssl 裁剪掉了很多老的算法,阉割掉了很多低级接口。并且跨平台和跨编译器适配其实没有 openssl 做得好。...因为有些构建流程会通过设置环境变量来影响构建选项。 gRPC 对新版本的编译器适配也有一些问题。...对一些依赖库的升级过程中,碰到的不是特别典型的问题我就不一一列举了。目前CI测试的平台增加了 Android NDK,iOS,iPhoneSimulator。

    94840

    解决envoy TLS握手失败问题

    在我们使用envoy替换原有云上alb的过程中,遇到了加密套件不兼容的问题,导致有大量大握手失败,对比envoy文档上的支持,我们发现envoy相对于云上ALB,少了以下六个cipher,除了ECDHE...envoy使用的boringssl,BoringSSL 是 OpenSSL 的一个分支,旨在满足 Google 的需求,而谷歌对安全要求也是比较高的,不支持这些弱cipher也情有可原,通过搜索我们发现在这个...修改完了接下来我们需要修改envoy依赖的boringssl,修改内容可以在此查看[3],然后我们就可以编译了 如果使用ubuntu编译在clone envoy代码后可以执行: ENVOY_DOCKER_BUILD_DIR.../ci/do_ci.sh bazel.release.server_only’ 如果是centos在clone代码后执行(实际在centos编译过程中需要修改git和bazel的路径为绝对路径,建议使用.../commit/6e678eeb6e76171712ae00d467321b6fe196152d [2] branch: https://github.com/du2016/boringssl/tree

    1K10

    使用Kubernetes设备插件和RuntimeClass在入口控制器中实现硬件加速SSLTLS终止

    在这篇博客文章中,我们将展示使用最近创建的Kubernetes构建块(设备插件框架和RuntimeClass)为运行Ingress控制器代理的容器提供硬件加速加密是多么容易。...CNCF毕业项目Envoy使用BoringSSL,但是社区似乎也有兴趣使用OpenSSL作为替代。...从应用程序的角度来看,这也是理想的,因为他们不需要知道如何使用硬件的细节,并且当硬件可用时,可以加载/使用特定于硬件的模块。...部署概述 参考设置 最后,我们描述构建图2中描述的功能设置所需的构建块和步骤,该功能设置使用Intel® QuickAssist技术(QAT) PCIe设备在入口控制器中启用硬件加速SSL终止。...我们演示了使用HAproxy的设置,它已经支持OpenSSL中的异步加密卸载。 我们团队的下一步是对Envoy重复相同的步骤(使用一个基于OpenSSL的TLS传输套接字作为扩展构建)。

    1.3K20

    使用 QuicTLS 编译 Nginx 并开启 Quic 或 HTTP3

    之前在 Nginx-Quic 分支被合并到了 Nginx 主线的时候写过一篇使用 BoringSSL 编译 Nginx 并开启 Quic 或 HTTP/3 的文章,详见 Nginx 编译开启 Quic...但是由于 BoringSSL 上个月发布了一个破坏性的更新导致编译出错,虽然最后解决了问题但回头想想觉得还是可以转向更稳定、兼容性更好的 QuicTLS,所以本文将为您介绍如何使用 QuicTLS 编译...refs/tags/openssl-3.1.5-quic1.tar.gztar -xzf openssl-3.1.5-quic1.tar.gz cd openssl-openssl-3.1.5-quic1.../openssl-openssl-3.1.5-quic1/build/include" --with-ld-opt="-L...../nologin www添加进程管理本人使用的是 systemd,如果你使用的是其他进程管理,请自行修改vim /usr/lib/systemd/system/nginx.service输入如下内容:[

    71910

    Akka-CQRS(10)- gRPC on SSLTLS 安全连接

    使用gRPC作为云平台和移动前端的连接方式,网络安全应该是必须考虑的一个重点。gRPC是支持ssl/tls安全通讯机制的。用了一个周末来研究具体使用方法,实际上是一个周末的挖坑填坑过程。...sslContext(sslContext) .build(); blockingStub = GreeterGrpc.newBlockingStub(channel); 先构建...SslContextBuilder,然后在构建NettyServerBuilder和NettyChannelBuilder时加入sslContext。...上面的my-public-key-cert.pem,my-private_key.pem是用openssl产生的: openssl req -x509 -newkey rsa:4096 -keyout...不过客户端在使用了证书后仍然无法连接到服务端。没办法,又要再去查资料了。看来现在应该是证书的问题了。先看看是不是因为使用的证书是自签的self-signed-certificate。

    1.3K40
    领券