Настройка внешнего подключения RabbitMQ

Важно

Версия внешнего сервиса должна совпадать с версией, указанной в файле docker-compose.yml.

  1. Укажите в файле .env для следующих параметров значения, установленные вами при настройке RabbitMQ (ниже указаны значения по умолчанию):

    RABBITMQ_DEFAULT_USER=testit
    RABBITMQ_DEFAULT_PASS=password
    RABBITMQ_DEFAULT_VHOST=testitrabbit
    RABBITMQ_DEFAULT_HOST=external-server (где external-server - ip-адрес или DNS-имя вашего сервера с RabbitMQ)
    RABBITMQ_DEFAULT_PORT=5672
    RABBITMQ_AUTH_MODE=plain
    RABBITMQ_CLIENT_CERT_PATH=/etc/rabbitmq/ssl/client/testit.pfx
    #RABBITMQ_CLIENT_CERT_PASSPHRASE=
    
  2. В файле docker-compose.yml закомментируйте секцию с сервисом rabbitmq, зависимости от него других контейнеров (все упоминания rabbitmq в блоках depends_on) и rabbit-volume, rabbitmq-configuration-volume, rabbitmq-certificates-volume в списке volumes.

  3. Перезапустите систему Test IT:

    docker-compose -f docker-compose.yml --project-name prod up --detach --timeout 120 --remove-orphans
    

Настройка безопасного соединения

  1. Подготовьте файлы сертификатов - корневой ca.crt, а также подписанные с помощью него сертификат и ключ сервера server.crt и server.key. CN сертификата сервера должен быть minio и avatars-minio соответственно для сервисов minio и avatars.minio.

  2. Скопируйте файлы server.crt и server.key для minio и avatars.minio в вольюмы:

    server_certs=$(docker inspect yourproject_minio-tls-volume --format '{{ .Mountpoint }}')
    cp server-minio.crt ${server_certs}/public.crt
    cp server-minio.key ${server_certs}/private.key
    
    server_certs=$(docker inspect yourproject_avatars.minio-tls-volume --format '{{ .Mountpoint }}')
    cp server-avatars-minio.crt ${server_certs}/public.crt
    cp server-avatars-minio.key ${server_certs}/private.key
    

    Важно

    При копировании файлы сертификатов переименовываются в public.crt и private.key соответсвенно, так как minio ожидает такие файлы в соответствии с документациейopen in new window.

  3. Скопируйте файл сертификата CA, с помощью которого были выписаны сертификаты серверов, в вольюм trusted-certificates-volume:

    trusted_certs=$(docker inspect yourproject_trusted-certificates-volume --format '{{ .Mountpoint }}')
    cp ca.crt ${trusted_certs}/
    
  4. Измените значения переменных для подключения к minio в файле .env для использования HTTPS:

    ...
     AWS_CONNECTION_STRING=https://minio:9000
     ...
     AVATARS_AWS_CONNECTION_STRING=https://avatars-minio:9000
     ...
    
  5. Для того, чтобы изменения вступили в силу, перезапустите сервисы minio и avatars.minio, а затем примените изменения в .env с помощью docker-compose:

    docker restart yourproject_minio_1
    docker restart yourproject_avatars.minio_1
    docker-compose -f docker-compose.yml --project-name yourproject up --detach --timeout 120
    

    Cервисы webapi и avatars.api также будут перезапущены с новой конфигурацией для подключения к minio по HTTPS.