Назад | Перейти на главную страницу

как заставить http webapp использовать https (ssl)?

На нашем Linux-сервере у нас есть какое-то веб-приложение, на котором работает собственный небольшой веб-сервер, ТОЛЬКО с использованием http. Это означает, что он не поддерживает ssl сам по себе. Итак, я ищу способ «что-то» упаковать перед этим маленьким веб-сервером / веб-приложением, чтобы он передавал https пользователю (обязательно), и он продолжал говорить http с веб-приложением локально (внутренний сервер).

я пытался найти что-то подобное. но тот факт, что я нашел МНОГО материала, охватывающего apache, ssl и обратный прокси, на самом деле не прояснил ситуацию. Я запутался больше, чем раньше.

Нужен совет, ключевые слова или пример конфигурации, которая позволяет это сделать.

Спасибо

Установите NGINX или аналогичный сервер перед вашим веб-приложением, которое проксирует трафик. Затем настройте NGINX с сертификатом SSL.

Настройте свое веб-приложение для работы на fx. порт 8080 и используйте этот фрагмент кода, чтобы проксировать его в NGINX:

location / {
  proxy_pass http://127.0.0.1:8080/;
}

Весь серверный блок с включенным SSL должен выглядеть примерно так:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        listen 443 ssl;

        server_name example.com;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;

        location / {
                proxy_pass http://127.0.0.1:8080/;
        }
}

Пример конфигурации виртуального хоста Apache:

<VirtualHost *:443>
    ServerName example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

    SSLEngine on
    SSLCertificateFile    /path/to/certificatefile
    SSLCertificateKeyFile /path/to/keyfile

        <Location />
            ProxyPass          http://your-webserver:8080/
            ProxyPassReverse   http://your-webserver:8080/
        </Location>
</VirtualHost>

Он не тестировался и может потребовать некоторых корректировок, но должен дать вам представление о том, как его настроить.

Вы можете попробовать перезаписать с помощью apache. Есть аналогичный вопрос, который задавали ранее, объясняющий, как. https://stackoverflow.com/questions/8371/how-do-you-redirect-https-to-http