c++ - GRPC c ++中的相互身份验证?
问题描述
我想知道如何在 GRPC C++ 中使用相互身份验证。
我的 GRPC 客户端在嵌入式硬件上运行并具有自签名证书。
我正在创建一个用于创建安全通道的 SslCredentialsOptions 对象:
SslCredentialsOptions ssl_options
ssl_options.pem_cert_chain = /* std::string containing the test certificate pem file*/
我是否也需要传递私钥?我将无法访问私钥,因为它位于 ecc508 芯片内。
但是,当我在测试设置中传递私钥时,服务器仍然没有对客户端进行身份验证。我这样做是通过
ssl_options.pem_private_key = /* std::string containing test private key */
GRPC 简单地说failed to connect to all addresses
。
我使用的测试证书是由我们的 grpc 服务器中使用的 root-ca 签名的。
任何想法如何使这项工作?我认为只需传递参数即可获得直接的体验,但现在我不知道发生了什么。任何输入将不胜感激。
谢谢!
解决方案
gRPC 包装语言支持用于硬件加密私钥的 OpenSSL ENGINE。您只需要设置 ssl_option.pem_private_key = "engine:<engine_id>:<key_id>"。
推荐阅读
- qgis - QGIS如何获得城市标签以首先渲染最大的城市?
- windows - 如何在 Windows 上的 docker linux 容器中“mkdir aux”?
- python - 在存储在元组中的两个列表上交换位置
- javascript - 未捕获的错误:语法错误,无法识别的表达式:
- reactjs - 发生一些错误地图不起作用
- python - Ansible:如何从 URI (REST) xml 输出中解析 XML 值
- html - 如何在我的顶部导航和页脚之间居中我的图像?
- node.js - 使用异步节点 js 运行多个 mongodb 查询
- python - 如何在python中将一个数组划分为s个子数组
- python - 如何从列表列表中获取整数