详细的TLS设置Xray的RabbitMQ

帕特里克·罗素
2023-01-22十一10

x射线TLS步骤

注意:此信息设计用于x射线2。X

x光2。Xhas three third-party microservices (RabbitMQ, Postgresql, MongoDB), and all of these services communicate with Xray via unencrypted channels.

通常这很好,因为您可以锁定web服务器或将所有内容留在同一主机上。然而,对于一些有安全意识的用户来说,加密Xray是必须的。

Xray Wiki提供了要使用的设置和字段,但前提是用户具有SSL加密和调优Xray使用的微服务方面的专业知识。本指南详细介绍了如何创建自签名证书并将其安装在这些服务中。系统配置完成后,可以获取ca签名证书。

要使用这些步骤使用自签名证书,请确保将自签名证书添加到Xray主机操作系统信任存储区。这个网络资源可能很有用。

RabbitMQ TLS

RabbitMQ需要有一个CA(证书颁发机构)文件以及更标准的SSL证书。

1)使用OpenSSL创建必要的证书。为了签署证书,我们首先需要一个证书签名请求(CSR)。

#创建一个证书签名请求(CSR)文件对

Openssl req -new -nodes -text out ca.csr -keyout ca-key。pem -subj "/CN=certificate-authority"

然后我们需要4个文件:服务器(RabbitMQ)的密钥和证书,客户端(Xray)的密钥和证书。

使用CSR文件创建服务器TLS服务器证书颁发机构、密钥和证书

Openssl x509 -req -in ca.csr -text -extfile /etc/pki/tls/openssl.cnf -extensions v3_ca -signkey ca-key。导出ca-cert.pem

Openssl req -new -nodes -text -out server。CSR -keyout server-key。pem -subj "/CN=rabbitmq"

Openssl x509 -req -in服务器。csr -text -CA ca-cert. cer。pem -CAkey ca-key。输出server-cert.pem

#创建客户端CSR和证书

Openssl req -new -nodes -text -out客户端。CSR -keyout client-key。pem -subj "/CN=rabbitmq"

Openssl x509 -req -in客户端。csr -text -CA ca-cert. cer。pem -CAkey ca-key。输出client-cert.pem

最后你应该有这些文件:

  • server-cert.pem
  • server-key.pem
  • client-cert.pem
  • client-key.pem
  • ca-cert.pem

2)复制这三个服务器文件到rabbitMQ可以到达的文件夹:

cp ca-cert。pem server-cert。pem服务器密钥。pem /etc/ssl/rabbitmq/

3)现在给用户,组和正确的权限复制文件

Chown rabbitmq /etc/ssl/rabbitmq/*

CHGRP rabbitmq /etc/ssl/rabbitmq/* .使用实例

Chmod 644 /etc/ssl/rabbitmq/*


4)将这些TLS设置添加到/etc/rabbitmq/rabbitmq.conf文件。注意,我们在ssl_options行中传递了三个PEM文件的路径。

loopback_users。Guest = false
listener .tcp.default = 5672
Hipe_compile = false
Management.listener.port = 15672
Management.listener.ssl = true
listener .ssl.default = 5671

ssl_options。Cacertfile = /etc/ssl/rabbitmq/ca-cert.pem
ssl_options。Certfile = /etc/ssl/rabbitmq/server-cert.pem
ssl_options。Keyfile = /etc/ssl/rabbitmq/server-key.pem
ssl_options。Verify = verify_peer
ssl_options。Fail_if_no_peer_cert = false

ssl_options.ciphers。1 = aes256-sha256
ssl_options.ciphers。2 = aes256-gcm-sha384
ssl_options。Honor_cipher_order = true
ssl_options。Honor_ecc_order = true

作为测试,你可以重新启动Xray,看看RabbitMQ是否上线。RabbitMQ仍将在其HTTP端口上提供通信服务,Xray应该可以毫无问题地上线。Xray将使用HTTP端口,直到我们在接下来的步骤中更改配置并重新启动。

5)经营Xray REST API命令启用x射线端TLS加密:

curl -uadmin:password -XPUT http://localhost:8000/api/v1/configuration/systemParameters -v -H"Content-type: application/json" -d '{"sslInsecure":true,"maxDiskDataUsage":80,"monitorSamplingInterval":300,"messageMaxTTL":7,"jobInterval":86400,"allowSendingAnalytics":true,"httpsPort":443,"mailNoSsl":false,"enableTlsConnectionToRabbitMQ":true}'


         

要验证是否成功,运行下面的命令。如果返回修改后的JSON值,则操作成功:

curl -uadmin:密码http://localhost:8000/api/v1/configuration/systemParameters

在重新启动Xray之前,将不使用TLS连接。不要重新启动,我们仍然需要提供客户端证书文件。

8)复制证书,使其归x射线所有:
Mkdir -p /var/opt/jfrog/xray/data/ssl/rabbitmq

cp /etc/ssl/rabbitmq/ca-cert.pem /etc/ssl/rabbitmq/server-cert.pem/etc/ssl/rabbitmq/server-key.pem /var/opt/jfrog/xray/data/ssl/rabbitmq/

Chown x射线:x射线/var/opt/jfrog/xray/data/ssl/rabbitmq/*

9)现在更新连接字符串,并在xray_config中添加Xray证书路径。yaml文件:

mqBaseUrl: amqp: / / 12 c[…]b21N@rabbitmq: 5671


clientCaCertFilePath: /var/opt/jfrog/xray/data/ssl/rabbitmq/ca-cert.pem

clientCertFilePath: /var/opt/jfrog/xray/data/ssl/rabbitmq/server-cert.pem

clientCertKeyFilePath: /var/opt/jfrog/xray/data/ssl/rabbitmq/server-key.pem

注意,我们使用的是“amqps”和端口5671。这是安全的RabbitMQ协议。

10)重新启动整个x射线应用程序。

./xray.sh重启所有

11)如果一切配置正确,您可以在https://:15672访问rabbitmq, x射线使用安全TLS连接。