栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

rabbitmq开启ssl认证后,php调整策略

rabbitmq开启ssl认证后,php调整策略

背景:

由于需要将阿里云相关服务转移到华为云,项目配套服务rabbitmq也被列入迁移计划。阿里云rabbitmq是自建服务,采用5672端口,未开启ssl加密。华为云购买rabbitmq服务,开启了ssl加密。项目生产者发送消息时就报错"Broken pipe or closed connection"

经过一天不断调试终于找到解决方案,故记录如下。

若rabbitmq未启用ssl加密,百度出来的结果均是如下代码

$connection=new PhpAmqpLibConnectionAMQPStreamConnection(
            getConfig('rabbit','RABBIT_URL'),//mq ip
            getConfig('rabbit','RABBIT_PORT'),//mq port
            getConfig('rabbit','RABBIT_USER'),//mq user
            getConfig('rabbit','RABBIT_PWD'),//mq pwd
            getConfig('rabbit','RABBIT_VHOST')//mq vhost
);

但是rabbitmq启用了ssl加密,又无法获取到证书密钥信息的时候请尝试如下代码进行rabbitmq链接

//核心配置,对证书进行单边验证
$sslOptions = [
   'verify_peer'=>false,
   'verify_peer_name'=>false
];
$connection=new PhpAmqpLibConnectionAMQPSSLConnection(
   getConfig('rabbit','RABBIT_URL'),//mq ip
   getConfig('rabbit','RABBIT_PORT'),//mq port
   getConfig('rabbit','RABBIT_USER'),//mq user
   getConfig('rabbit','RABBIT_PWD'),//mq pwd
   getConfig('rabbit','RABBIT_VHOST'),//mq vhost
   $sslOptions
);

请注意:新代码声明了$sslOptions 数组,链接方法由AMQPStreamConnection更换为AMQPSSLConnection


参考文献:

Connect to RabbitMQ from PHP over AMQPS | LornaJanehttps://lornajane.net/posts/2016/connect-to-rabbitmq-from-php-over-amqpsPHP: SSL context options - Manual https://www.php.net/manual/en/context.ssl.php

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/758728.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号