Как получить https на CentOS 7 с приложением, установленным в докере

541
Rob D. A.

Как настроить httpd на CentOS 7 для работы в качестве прокси для приложения (контейнера Docker), работающего на порту 8080. Я думал, как заставить это работать, мое приложение было подготовлено как контейнер докера (никогда не слышал об этом раньше;)), поэтому сначала я должен был узнать, что такое «докер» и как он работает (потому что приложение работает в контейнере это не позволило бы мне использовать https). Итак, что я сделал для этого: - Подготовил VPS с httpd / apache, затем создал VS - Установил SSL-сертификаты на httpd. - Установленный Docker - Извлек образ моего приложения ... затем, чтобы заставить HTTPS работать, мне пришлось перенастроить мой VirtualServer, как показано ниже

мой VS config (обновленный прокси)

# HTTP <VirtualHost *:80> ServerName myserver.domain.co.uk RewriteEngine On RewriteCond % off RewriteRule (.*) ht tps://%/$1 [R,L] LogLevel warn ErrorLog myserver.domain.co.uk-error_log CustomLog myserver.domain.co.uk-access_log combined </VirtualHost> # HTTPS <VirtualHost *:443> ServerName myserver.domain.co.uk LogLevel warn ErrorLog myserver.domain.co.uk-error_log CustomLog myserver.domain.co.uk-access_log combined SSLEngine on SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key Header set X-Content-Type-Options "nosniff" # Reverse proxy configuration <Proxy *> Allow from localhost </Proxy>  ProxyPass / http://127.0.0.1:8080 ProxyPassReverse / http://127.0.0.1:8080  </VirtualHost> 

... и теперь это работает!

0
Здравствуйте, да, я уже провел некоторые исследования и нашел некоторые детали. Мой httpd уже установил все модули, а также я создал некоторые конфигурации. Проверьте выше. Rob D. A. 6 лет назад 0
все модули конечно работают. По крайней мере, httpd -L сказал, что :) Rob D. A. 6 лет назад 0
Я уверен, что директивы proxypass и proxypassreverse не должны находиться в блоке локации, а ваш синтаксис нуждается в корректировке. Попробуйте удалить теги location и / location и измените на ProxyPass / https: ... / с соответствующим proxypassreverse. (т.е. синтаксис требует как path и url в качестве параметров) davidgo 6 лет назад 0
Я не до конца понимаю ... не могли бы вы привести пример? Rob D. A. 6 лет назад 0
После удаления <location /> я не смог перезапустить службу httpd Rob D. A. 6 лет назад 0
Вы также вставили / в строки ProxyPass и proxypassreverse? Кроме того, какую ошибку показали журналы? (Я не за компьютером, поэтому мне нецелесообразно отвечать на ваш последний запрос) davidgo 6 лет назад 0
Нет, я не добавил /, если я это сделаю, это не позволит мне снова запустить httpd :), но я нашел что-то еще в error_log: [Пт 01 декабря 16: 55: 22.627604 2017] [ssl: warn] [pid 46095] AH02292 : Init: виртуальные хосты SSL на основе имен работают только для клиентов с поддержкой индикации имен серверов TLS (RFC 4366) Rob D. A. 6 лет назад 0
Вероятно, да. Что вы должны потерять, попробовав это? В дни предупреждения SSL эта установка сломает очень старые (эпоха Windows XP) браузеры, но не должна быть проблемой с чем-то более современным или безопасным для использования в Интернете. davidgo 6 лет назад 0
Так что насчет этой ошибки? Что я могу сделать, чтобы это работало? Rob D. A. 6 лет назад 0
Или может мне сначала установить SSL на контейнер, а затем просто запустить его через порт 443 или что-то в этом роде? Rob D. A. 6 лет назад 0
Решение проблем, изменение конфигурации VS, прокси и работает. Rob D. A. 6 лет назад 0

0 ответов на вопрос

Похожие вопросы