@ukoHka
Всего понемногу

Как работает связка nginx + apache2 + let's encrypt?

Не получается настроить https при использовании nginx
Насколько я понимаю, nginx слушает порты :80 и :443, а apache - только :8080.
При запросе на сервер сначала загружаются все конфиги из /etc/nginx/sites-enabled/
Если server_name совпадает, то выполняется подошедший конфиг test, если нет подходящих, то срабатывает конфиг default, в котором прописан server_name localhost.
Внутри test, если порт 80, идет перенаправление запроса на 433-й.
В 443 прописаны ключи /etc/letsencrypt/live/test.example.com/fullchain.pem
Из 443-го, если запрошен скрипт, запрос перенаправляется в 127.0.0.1:8080 и его перехватывает apache.
там загружается подходящий конфиг с ServerName test.example.com и выполняется указанный скрипт.

Но в моем случае возникает ошибка неправильного сертификата. Страница открывается правильная, так что общий маршрут верен. Из-за чего возникают подобные проблемы?
Конфиг /etc/nginx/sites/enabled/test:
server {
    listen 80;
    server_name test.example.com;
    rewrite     ^   https://$host$request_uri? permanent;
}

server {
        listen   443 ssl;

        server_name test.example.com;

    ssl_certificate /etc/letsencrypt/live/test.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/test.example.com/privkey.pem;

    # Turn on OCSP stapling as recommended at
    # https://community.letsencrypt.org/t/integration-guide/13123
    # requires nginx version >= 1.3.7
    ssl_stapling on;
    ssl_stapling_verify on;
        location /.well-known {
                alias /var/www/test/.well-known;
        }

        location / {
        try_files $uri $uri/ /index.php;
        }

        location ~ \.php$ {

        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

         }

         location ~ /\.ht {
                deny all;
        }
}

Конфиг /etc/apache2/sites-enabled/test.conf:
<VirtualHost 127.0.0.1:8080>
        ServerName test.example.com
        ServerAdmin webmaster@example.com
        DocumentRoot /var/www/test
        ErrorLog /var/log/apache2/test/error.log
        CustomLog /var/log/apache2/test/access.log combined
        <Directory /var/www/test>
                AllowOverride All
                Options -Indexes
        </Directory>
#RewriteEngine on
#RewriteCond %{SERVER_NAME} =test.example.com
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>


RewriteEngine закомментировал, потому что перенаправление идет уже в nginx.

Я бы подумал, что проблема в сертификате, но до установки nginx все работало без проблем.
  • Вопрос задан
  • 506 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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