Docker container с reverse proxy на Apache при WHM/cPanel

tanchev

Registered
Копирам си поста директно от cPanel форума, защото не ми се пише отначало :D

I am trying to create a simple HTML docker container with a reverse proxy, I am following the guide here in for the Apache configurations:

-> https://support.cpanel.net/hc/en-us/articles/360052925073

These are the configuration files:

SSL:

PrivateBin

Non-SSL:

PrivateBin

Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.
privatebin.net

It is very simple as you might see, however, the issue that I am having is that when I try to visit the website/domain through the Docker container with SSL, it does not work, and I do not understand the reason why as I am setting everything as per the guides found in cPanel docs, for reference I am attaching my Dockerfile as well as my docker-compose.yml file:

DockerFile:

PrivateBin

Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.
privatebin.net

Docker-compose:
PrivateBin

When I visit the webpage with HTTPS, it is like there is no SSL installed, and instead, the following page is being opened:
-> Screenshot

However, when I visit it without https the page opens normally:
-> Screenshot

There are no errors whatsoever that would suggest the key and crt copied from the Docker container to the specified folder are incorrect or in any way do not match:

-> Screenshot

Therefore I am not certain why the server is not detecting the SSL certificates and what may be the culprit for this. Has anyone tried to achieve this and if yes, how?


Някой ако се е занимавал с тая гад да ми каже къде бъркам че нервите ми се скъсаха вече, мерси
 
Ако имаш fullchain сертификата, защо не го подаваш. Опитай следното:

Apache config:
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/ludiamaks.xyz/fullchain.pem
SSLCertificateChainFile /etc/letsencrypt/live/ludiamaks.xyz/fullchain.pem

Също, ако нямаш ServerName е много вероятно апаче да fallback-ва към дефолтен такъв, въпреки че виждаш резултат.

If you omit the ServerName directive from any name-based virtual host, the server will default to a fully qualified domain name (FQDN) derived from the system hostname. This implicitly set server name can lead to counter-intuitive virtual host matching and is discouraged.
 
Защо на цпанел, звучи абсурдно
Зарежи цпанел няма общо, просто казвам каква ми е средата, то апачето си едно и също навсякъде.

ServerName ludiamaks.xyz
ServerAlias www.ludiamaks.xyz

SSLEngine on
SSLCertificateFile "/etc/sslcertificatesdocker/ludiamaks/fullchain.pem"
SSLCertificateChainFile "/etc/sslcertificatesdocker/ludiamaks/fullchain.pem"
SSLCertificateKeyFile "/etc/sslcertificatesdocker/ludiamaks/privkey.pem"



<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
</IfModule>

Пробвах и така, но пак не го намира, някъде бъркам нещо но не мога да разбера къде, попринцип се опитах да ползвам и default-ния ссл който цпанел си генерира автоматично ама пак не става, докера пак не го разпознава.
 
До колкото знам apache изображенията не идват с включен SSL модул. Сложи в Dockerfile следното и ребилдни:

Код:
RUN a2enmod ssl

Също така не мога много да кажа изцяло какъв ти е сетъпа, но те съветвам да си създаваш отделни virtualhost конфигурации и да ги зареждаш ръчно по следния начин

Код:
COPY ./ludiamaks.conf /etc/apache2/sites-available/ludiamaks.conf
RUN a2ensite ludiamaks

Аз лично избягвам да конфигурирам настройки специфични за даден виртуален хост директно в httpd.conf
 
До колкото знам apache изображенията не идват с включен SSL модул. Сложи в Dockerfile следното и ребилдни:

Код:
RUN a2enmod ssl

Също така не мога много да кажа изцяло какъв ти е сетъпа, но те съветвам да си създаваш отделни virtualhost конфигурации и да ги зареждаш ръчно по следния начин

Код:
COPY ./ludiamaks.conf /etc/apache2/sites-available/ludiamaks.conf
RUN a2ensite ludiamaks

Аз лично избягвам да конфигурирам настройки специфични за даден виртуален хост директно в httpd.conf
Ама то аз разчитам на Apache-то от хоста да работи SSL-а аз нямам .conf с конфигурация за Апаче в докер изображението изобщо, да не би това е да е проблема, аз мислех, че като го ползвам за Reverse proxy, то въпреки това ще си работи основното Апаче или бъркам жестоко? В случая трябва ли да имам .conf файл с някви конфигурации в docker image-a, които да са за SSL Или дори за без SSL? Аз като тръгна без ссл конфига от хоста а не от докера помислих че нямам нужда от никви конфиг файлове за апачето от докер контейнера. А аз иначе ссл-а по дефаулт съм го инсталирал не с апаче модула а с let`s encrypta:
-> docker-compose exec web certbot certonly --webroot -w /var/www/html -d ludiamaks.xyz
След това са ги копнал просто Outside оф the docker container в реалния хост (апачето) и съм ги сложил в допълнтелни конфигурации, има ли друг начин по който да се направи освен този, щото малко не те разбирам честно.
 
Ами тогава не насочвай проксито към https, а http протокола на localhost. Така проксито ти обхваща ссл-а. Иначе проксито като пренасочи към https на докер, то означава, че и той трябва да ти е конфигуриран да работи с ssl.
 

Back
Горе