c++ - GRPC TLS c++ 通信返回 ssl_transport_security.cc:1723] 找不到服务器名称的匹配项:10.100.102.5
问题描述
我正确创建了一个 grpc不安全服务器。现在我正在努力使其安全。我的代码是:
服务器:
std::string key = readFileContent("server.key");
std::string cert = readFileContent("server.crt");
std::string root = readFileContent("ca.crt");
grpc::SslServerCredentialsOptions::PemKeyCertPair pkcp = {key, cert};
grpc::SslServerCredentialsOptions ssl_opts;
ssl_opts.pem_root_certs = 根;
ssl_opts.pem_key_cert_pairs.push_back(pkcp);
ssl_opts.client_certificate_request = GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY;
std::shared_ptrgrpc::ServerCredentials 凭据 = grpc::SslServerCredentials(ssl_opts);
builder.AddListeningPort("10.100.102.5:5055", cred);
builder.RegisterService(服务);
std::unique_ptrgrpc::Server serverPtr = builder.BuildAndStart();
std::unique_ptr 服务器(std::move(serverPtr));
服务器->等待();
客户:
std::string key = readFileContent("client.key");
std::string cert = readFileContent("client.crt");
std::string root = readFileContent("ca.crt");
grpc::SslCredentialsOptions ssl_opts {root, key, cert};
自动 ssl_creds = grpc::SslCredentials(ssl_opts);
自动存根_ = RemoteSigner::NewStub("10.100.102.5:5055",ssl_creds);
ethereum::validator::accounts::v2::ListPublicKeysResponse 回复;
ClientContext 上下文;
stub_->ListValidatingPublicKeys(&context, ::google::protobuf::Empty(), &reply);
生成我的密钥:
openssl genrsa -passout pass:1234 -des3 -out ca.key 4096
openssl req -passin pass:1234 -new -x509 -days 365 -key ca.key -out ca.crt -subj "/C=SP/ST=Spain /L=Valdepenias/O=Test/OU=Test/CN=Root"
openssl genrsa -passout pass:1234 -des3 -out server.key 4096
openssl req -passin pass:1234 -new -key server.key -out server.csr -subj "/C=SP/ST=Spain/L=Valdepenias/ O=Test/OU=Server/CN=10.100.102.5"
openssl x509 -req -passin pass:1234 -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
openssl rsa -passin pass:1234 -in server.key -out server.key
openssl genrsa -passout pass:1234 -des3 -out client.key 4096
openssl req -passin pass:1234 -new -key client.key -out client.csr -subj "/C=SP/ST=Spain/L=Valdepenias/ O=Test/OU=Client/CN=10.100.102.5"
openssl x509 -passin pass:1234 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
openssl rsa -passin pass:1234 -in client.key -out client.key
收到此错误:transport_security.cc:1723] 找不到服务器名称的匹配项:10.100.102.5。你能帮我找出问题吗?
解决方案
推荐阅读
- typescript - 如何删除所有未使用的参数/导入,添加缺少的导入,并通过脚本进行美化
- asp.net-mvc - 添加 TagHelper 后,Razor 页面样式不起作用
- reactjs - 如何在 React 中向单页滚动应用程序添加 404 页面?
- react-native - React Native、Expo、Axios 的计算机权限问题
- javascript - 从又一个 webpack-es6-starterkit 导出
- android - 对话框片段未显示
- redux - 在redux中按顺序执行动作
- python - 在具有重复列的数据框的循环中使用 .append 时出现熊猫错误
- php - 如何在 PHP 中使用 HREF 发送变量值
- javascript - 将三个选择菜单中的元素切入和切出数组