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

Nginx SSL не работает

Я использую веб-сервер debian squeeze с nginx, и я не могу заставить работать SSL. Ошибка, которую я получаю не от apache, а от клиентского веб-браузера с «ошибкой тайм-аута подключения».

Я приобрел сертификат SSL в StartSSL, и когда это не помогло, я попытался создать свой собственный просто для устранения неполадок. Оба дали одну и ту же ошибку, и ни один из них не работал, и мой журнал nginx ничего не показывает.

Моя конфигурация SSL выглядит так:

server {
            listen 443 default_server ssl;
            server_name tarror.org www.tarror.org;
            ssl on;
            ssl_certificate      /srv/ssl/nginx.pem;
            ssl_certificate_key  /srv/ssl/nginx.key;

            root /wdata/tarror.org;
            index index.php index.htm index.html;

            location ~ .php$ {
              fastcgi_pass   127.0.0.1:9000;
              fastcgi_index  index.php;
              fastcgi_param  SCRIPT_FILENAME /wdata/tarror.org$fastcgi_script_name;
              include fastcgi_params;
            }
   }

Откройте порт 443 в брандмауэре вашего веб-сервера.

Я сначала попробую взять ssl on; line out, поскольку это устарело, поскольку nginx 1.15.0. Имея ssl в listen line делает то же самое.

Из документации Nginx:

Syntax: ssl on | off;
This directive was made obsolete in version 1.15.0. 
The ssl parameter of the listen directive should be used instead.

Эта статья сработала для меня с использованием самоподписанных сертификатов в Ubuntu:

http://www.networkinghowtos.com/howto/configure-nginx-to-use-ssl-certificates/

Здесь показан синтаксис конфигурации, необходимый для SSL на основе разных версий nginx.

Убедитесь, что Nginx прослушивает порт 443, используя netstat -an. Также убедитесь, что у вас нет правил брандмауэра / iptables, которые могут блокировать порт 443.