TLS设置用于Docker安装Xray

帕特里克·罗素
2021-04-27 20:36

相关版本该信息与……有关x光2。X

从版本2开始。x, x光支持本机TLS加密所有内部微服务通信。启用x射线TLS加密non-Docker按照所提供的说明进行安装在这里

Postgres TLS设置

中启用加密码头工人安装时,您的TLS证书需要加载到这两个x光而且PostgreSQL码头工人的容器中。这最好通过使用现有的卷挂载来实现,这将允许容器保留瞬态.这可以通过以下步骤来实现:

1.创建容器外的PostgreSQL TLS证书文件:

Openssl req -newkey rsa:2048 -nodes -keyout psql。键-x509 -days 365 -out psql.crt
由于Xray连接到PostgreSQL的特性,在出现提示时,一定要使用postgres作为通用名称(CN)。其他的提示可以用任何东西填充,因为这些字段旨在让人可读,不会被Xray或PostgreSQL使用。

2.添加PostgreSQL的证书:

a.进入PostgreSQL卷文件夹(默认:~ / .jfrog / x光/ postgres),并创建一个名为确实的事情.当父目录"postgres"被挂载到容器中时,任何文件或文件夹都会出现在容器中:

mkdir .jfrog / x光/ postgres /确实的事情

b。复制关键而且阴极射线管将步骤1中创建的文件放入“certs”文件夹。

c.检查文件是否正确拥有由postgres用户。如果你不确定PostgreSQL用户的UID而且GID,这可以在容器内部完成:

chown Postgres: Postgres /var/lib/postgresql/data/certs/* chmod 600 /var/lib/postgresql/data/certs/*

d。更新.jfrog / x光/ postgres / postgresql.conf文件。你可以参考x光文档关于语法的信息,请确保这些路径指向PostgreSQL内部容器路径(/ var / lib / postgres /数据):

在ssl =
ssl_ciphers = '高:中:+ 3 des: !aNULL”
ssl_prefer_server_ciphers =对

#/var/lib/postgres/data/certs是PSQL容器中的路径
ssl_cert_file = ' / var / lib / postgres /数据/证书/ psql.crt”
ssl_key_file = ' / var / lib / postgres /数据/证书/ psql.key”
# ssl_ca_file = ' /全/ / / postgres /证书/ server_ca路径。crt' #不需要,注释掉

3.重新启动PostgreSQL容器:

码头工人重启xray_postgres_1

4.添加相同的PostgreSQL证书文件x光的山.应该已经有了SSL文件夹,您可以使用:

mkdir .jfrog / x光/ x光/ ssl / postgres_tls /

5.更新xray_config.yaml使用SSL文件路径连接卷中的文件。请注意:路径需要映射到x射线容器内的内容。这意味着jfrog / x光/ x光/ ssl / postgres_tls文件夹将/var/opt/jfrog/xray/data/ssl/postgres_tls在容器:

postgresqlUrl: postgres: / /[…]92 w = = @postgres: 5432 / xraydb吗?sslrootcert =/var/opt/jfrog/xray/data/ssl/postgres_tls / psql.crt&sslkey =/var/opt/jfrog/xray/data/ssl/postgres_tls / psql.key

6.重新启动x光。

RabbitMQ TLS设置

RabbitMQ消息也可以加密。其逻辑类似于上面的PostgreSQL指令。请记住,需要将证书复制到卷挂载,配置需要内部容器路径:

1.创建你的TLS证书:

Openssl req -newkey rsa:2048 -nodes -keyout rabbit。Key -x509 -days 365 -out rabbit.crt
由于Xray连接到RabbitMQ服务器的特性,当提示时,一定要指定rabbitmq随着常见的名字(CN)。

2.将这些文件复制到RabbitMQ卷挂载的新文件夹中:

Mkdir .jfrog/xray/rabbitmq/certs cp rabbit* .jfrog/xray/rabbitmq/certs . Mkdir .jfrog/xray/rabbitmq/certs . zip

3.确保所有权设置正确(Docker exec进入容器使用“rabbitmqUID而且GID):

chmod 600 /var/lib/rabbitmq/certs/* . chown rabbitmq

4.将以下TLS设置添加到/etc/rabbitmq/rabbitmq.conf容器中的文件:

loopback_users。客人= false
listeners.tcp.default = 5672
hipe_compile = false
management.listener.port = 15672
management.listener.ssl = true
listeners.ssl.default = 5671
ssl_options。certfile = /var/lib/rabbitmq/certs/rabbit.crt
ssl_options。关键file = /var/lib/rabbitmq/certs/rabbit.key
ssl_options。验证= verify_peer
ssl_options。fail_if_no_peer_cert = false

您可以在外部挂载此文件以持久保存更改。

5.复制同样的兔子证书(兔子。阴极射线管, rabbit.key) to your Xray volume and ensure they are owned by the "x光“linux用户:

Mkdir .jfrog/xray/xray/ssl/rabbitmq/ cp rabbit* .jfrog/xray/xray/ssl/rabbitmq/ chown xray:xray .jfrog/xray/xray/ssl/rabbitmq/* chmod 600 .jfrog/xray/xray/ssl/rabbitmq/*

6.运行启用RabbitMQ的TLS证书REST API:

curl -uadmin:password -k -X PUT https://:/api/v1/configuration/systemParameters -d '{"sslInsecure": false, "maxDiskDataUsage": 80, "monitorSamplingInterval": 300, "mailNoSsl": false, "messageMaxTTL": 7, "jobInterval": 86400, "allowSendingAnalytics": true, "httpsPort": 443, "enableTlsConnectionToRabbitMQ": true}'

7.修改xray_config.yml文件使用Xray卷中的证书:

#Rabbitmq没有使用端口5671amqp协议mqBaseUrl:amqp: / / 12 ce13 aes256 nQ9PGNOBBBqF9x8cYTf9ZxXSe1EjmEvtm5LlvkwhJD34sO7hb21N@rabbitmq美元:5671[…] clientCertFilePath:/var/opt/jfrog/xray/data/ssl/rabbitmq/rabbit.crtclientCertKeyFilePath:/var/opt/jfrog/xray/data/ssl/rabbitmq/rabbit.key

8.重新启动x光的容器。

您可以查看SSL设置步骤,以便将通过SSL加密加密外部Xray端口作为下一步在这里