问题描述
我正在尝试建立从PHP到GRPC服务器的安全连接。在这种情况下,我将在同一台机器上执行此操作,但在生产环境中,我将需要通过服务器A上的PHP与服务器B上的GRPC服务建立连接。GRPC服务在端口16060上运行。端口16060已打开。
我将certbot的文件cert.pm
从/etc/letsencrypt/live/mycomain.com
复制到了PHP脚本所在的文件夹中。
此代码无法建立连接-
ERROR: 14,Failed to connect to all addresses
用mycomain.com
代替localhost
也不起作用
代码:
function greet($hostname,$name)
{
$client = new Helloworld\GreeterClient($hostname,[
//'credentials' => Grpc\ChannelCredentials::createInsecure(),'credentials' => \Grpc\ChannelCredentials::createSsl(file_get_contents('cert.pm')),]);
$request = new Helloworld\HelloRequest();
$request->setName($name);
list($response,$status) = $client->SayHello($request)->wait();
if ($status->code !== Grpc\STATUS_OK) {
echo "ERROR: " . $status->code . "," . $status->details . PHP_EOL;
exit(1);
}
echo $response->getMessage() . PHP_EOL;
}
$name = !empty($argv[1]) ? $argv[1] : 'world';
$hostname = !empty($argv[2]) ? $argv[2] : 'mydomain.com:16060';
greet($hostname,$name);
某些消息来源说要在凭据下添加以下行:
'grpc.ssl_target_name_override' => '<your value>','grpc.default_authority' => '<your value>'
如果是这样,我应该在<your_value>
中输入什么值?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)