Apache прокси с ssl для Jenkins на поддомене - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть домен "x.dev", а также поддомен "jenkins.x.dev". Мой основной домен размещен у провайдера, у которого есть доступ только к CPanel. «Jenkins.x.dev» размещается на другом локальном компьютере (где у меня есть доступ root). В CPanel я настроил перенаправление: jenkins.x.dev / http://MYIP/ 301 постоянный

На моем компьютере установлен сертификат SSL для "* .x.dev" сервер Jenkins, работающий через порт 8080, и сервер Apache, который я пытался настроить в качестве прокси-сервера со следующей конфигурацией:

<VirtualHost *:80>
    ServerAlias jenkins.x.dev
    DocumentRoot /var/www/jenkins.x.dev
    ErrorLog ${APACHE_LOG_DIR}/error.log

    Redirect permanent / https://jenkins.x.dev
</VirtualHost>

<VirtualHost *:443>
    ServerName www.jenkins.x.dev
    ServerAlias jenkins.x.dev
    DocumentRoot /var/www/jenkins.x.dev
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on
    SSLCertificateFile /etc/ssl/wwwcerts/certificate.crt
    SSLCertificateKeyFile /etc/ssl/wwwcerts/private.key
    SSLCertificateChainFile /etc/ssl/wwwcerts/ca_bundle.crt

    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass         /  http://localhost:8080/ nocanon
    ProxyPassReverse  /  http://localhost:8080/
    ProxyPassReverse  /  http://www.jenkins.x.dev/
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"
</VirtualHost>

Если я подключаюсь к jenkins.x.dev I появляется ошибка «Слишком много перенаправлений»

Это связано с тем, что:

curl -L -v --max-redirs 1 jenkins.x.dev

Я получаю:

* Rebuilt URL to: jenkins.x.dev/
*   Trying 188.215.XXX.XXX...
* TCP_NODELAY set
* Connected to jenkins.x.dev (188.215.XXX.XXX) port 80 (#0) # -> This is the webserver hosted with a provider
> GET / HTTP/1.1
> Host: jenkins.x.dev
> User-Agent: curl/7.58.0
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Connection: Keep-Alive
< Content-Type: text/html
< Content-Length: 617
< Date: Wed, 01 Apr 2020 20:11:34 GMT
< Server: LiteSpeed
< Location: http://188.247.XXX.XX/   # -> This is hosted locally
< 
* Ignoring the response-body
* Connection #0 to host jenkins.x.dev left intact
* Issue another request to this URL: 'http://188.247.XXX.XX/'  # -> Trying to connect to the local server
*   Trying 188.247.XXX.XX...
* TCP_NODELAY set
* Connected to 188.247.XXX.XX (188.247.XXX.XX) port 80 (#1)
> GET / HTTP/1.1
> Host: 188.247.XXX.XX
> User-Agent: curl/7.58.0
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently        
< Date: Wed, 01 Apr 2020 20:11:34 GMT
< Server: Apache/2.4.18 (Ubuntu)
< Location: https://jenkins.x.dev   # -> This is where I tried to force https but ended with a loop
< Content-Length: 318
< Content-Type: text/html; charset=iso-8859-1
< 
* Ignoring the response-body
* Connection #1 to host 188.247.XXX.XX left intact
* Maximum (1) redirects followed
curl: (47) Maximum (1) redirects followed

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

Мои знания Apache являются базовыми c.

Спасибо за помощь

...