RabbitMQ使用https/web-stomp

JS连接RabbitMQ在上篇中就已经实现了,但是发现在生产环境中无法使用,主要问题是通过https访问网站的话web-stomp也得支持ssl的安全访问,不支持ssl的话会因为安全问题无法进行访问。现将实现步骤记录一下。

  1. 首先得有ssl证书,可以去阿里云或者腾讯云申请免费的证书
  2. 申请好后将ssl证书下载下来,处理一下,下载下来是两个文件(pem证书和key文件),但是RabbitMQ中用到的是3个文件,需要把一个pem证书拆分为两个文件:ca证书文件和签发出来的域名pem,一般pem文件下面的密钥为ca证书文件。将处理好的3个文件上传到服务器中等待配置。
  3. 然后进入安装RabbitMQ的机器并进入配置文件目录

    cd /etc/rabbitmq/

    vi rabbitmq.conf

    在文件中输入web_stomp.ssl.port       = 15673

    web_stomp.ssl.backlog    = 1024

    web_stomp.ssl.cacertfile = /ssl/ca.pem

    web_stomp.ssl.certfile   = /ssl/xxx.com.pem

    web_stomp.ssl.keyfile    = /ssl/xxx.com.key

    保存即可

  4. 然后最重要的需要重启rabbitmq-server服务,如果有防火墙,得放开15673端口
  5. 然后使用js连接的时候访问这个地址
    wss://rabbitmq.xxx.com:15673/ws
  6. 以上就能使用https/web-stomp了