Использование сертификата с phpmyadmin для внешней базы данных

У меня есть контейнер докеров, который запускает phpMyAdmin.

Он использует самогенерируемый сертификат позволяет зашифровать через traefik.

Я использую параметр - PMA_ARBITRARY=1, чтобы по умолчанию не было никакой информации о нем, т.е. пользователь должен ввести хост и т. д.

Он отлично подключается к моей удаленной (управляемой) базе данных.

Проблема внутри пользовательского интерфейса, он говорит, что это не SSL. (адресная строка - SSL, но подключение к удаленной базе данных - нет)

У меня есть сертификат для этой удаленной базы данных на моем сервере, где работает экземпляр phpmyadmin. Я протестировал использование этого сертификата, подключившись к локальному программному обеспечению под названием dbeaver, и оно работает с файлом сертификата.

Как я могу отредактировать файл компоновки докеров, чтобы он мог использовать этот файл?

Файл сертификата находится на моем сервере по адресу: ~/приложения/phpmyadmin/ca.certificate.crt

Я использую portainer для развертывания файла компоновки докеров.

Я думаю, что я должен как-то отредактировать файл config.user.inc.php в контейнере докеров, чтобы установить эти значения:

// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// Enable SSL verification
$cfg['Servers'][$i]['ssl_verify'] = true;
$cfg['Servers'][$i]['ssl_ca'] = '/etc/phpmyadmin/ca.certificate.crt ';

Нужно ли мне добавить следующее в мой файл компоновки докеров? Может ли config.user.inc.php содержать только необходимые части, а остальные нужно перезаписать?

volumes:
  - ~/apps/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
  - ~/apps/phpmyadmin/ca.certificate.crt :/etc/phpmyadmin/ca.certificate.crt 

вот мой текущий файл компоновки докеров:

version: '3.3'

services:

    phpmyadmin:
        container_name: phpmyadmin
        environment:
            - PMA_ARBITRARY=1
        image: phpmyadmin
        restart: unless-stopped
        networks:
          - traefik
          - default
        labels:
          - "traefik.enable=true"
          - "traefik.docker.network=traefik"
          - "traefik.http.routers.phpmyadmin-secure.entrypoints=websecure"
          - "traefik.http.routers.phpmyadmin-secure.rule=Host(`phpmyadmin.example.com`)"
      

      
networks:
  traefik:
    external: true   

Спасибо

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не уверен, что можно определить специфичные для сервера параметры, такие как SSL-сертификаты, если вы используете директиву произвольного сервера и не указываете сервер в config.inc.php; это, вероятно, выходит за рамки целей дизайна, и такое поведение было бы ненадежным. Гораздо лучше явно указать сервер, включая информацию SSL.

В зависимости от специфики вашего экземпляра сервера вам также могут понадобиться $cfg['Servers'][$i]['ssl_key'], $cfg['Servers'][$i]['ssl_cert'], $cfg['Servers'][$i]['ssl_ca_path'] и $cfg['Servers'][$i]['ssl_ciphers']; см. https://docs.phpmyadmin.net/en/latest/config.html#cfg_Servers_ssl для получения подробной информации о каждой из этих директив.

Файл config.user.inc.php предназначен только для частей, в которых вы хотите переопределить настройки по умолчанию; у вас может быть файл, содержащий всего несколько строк, если этого достаточно.

Другие вопросы по теме