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

Настройка SSL на nginx с помощью proxy_pass

У меня проблемы с работой SSL для сайта на основе python / gunicorn, который отлично работает на порту 80. Я использую proxy_pass для отправки трафика в апстрим.

Шаги, выполненные на данный момент

  1. Пакет подстановочных сертификатов от Incommon, который работает на других сайтах apache, скопирован на компьютер, содержащий nginx в /etc/ssl. Три файла в комплекте: domain.crt, domain.key, incommon.crt
  2. Создан цепной сертификат под названием domain.chain.crt с помощью cat domain.crt incommon.crt > domain.chain.crt
  3. Устанавливать 775 разрешения и такое же право собственности, что и мой sites-available config для всех 4 файлов.
  4. Создал следующую конфигурацию под sites-available:

    server { 
       listen 80;
       server_name <subdom.domainname.com>;
       location / {
          include proxy_params;
          proxy_pass https://unix:/var/www/developmentfolder/sandbox.sock;
          proxy_ssl_certificate /etc/ssl/domain.chain.crt;
          proxy_ssl_certificate_key /etc/ssl/domain.key;
       }
    }
    

вопросы

Я не могу получить доступ к сайту сейчас ни для 80, ни для 443. Журнал ошибок Nginx ничего не показывает, и файл журнала для gunicorn. Проверка синтаксиса Nginx проходит каждый раз. Я здесь что-то делаю не так?

Версия Nginx - 1.10.3

Ты делаешь что-то не так. Вы говорите, что хотите, чтобы https работал, но настраиваете порт 80 для использования локального сокета по протоколу https. Я даже не уверен, что это можно сделать, но это позволит зашифровать соединение между nginx и gunicorn через файловый сокет unix-домена. Это не повлияет на соединение между браузером и вашим веб-сервером.

Если все, что вам нужно, - это сделать свой сайт доступным по https, почему бы не подписаться официальное руководство и делать более сложные вещи, когда это работает.

Если у вас это работает, и если вы серьезно относитесь к шифрованию соединения между веб-сервером и gunicorn, то я бы не стал использовать сокеты домена unix, а использовал Конфигурация SSL и HTTPS-соединение.