ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: http и https на одном севере



On Thu, 18 Jan 2007, Vsevolod Balashov wrote:

был у меня на 0.4.х такой замечательный конфиг:

На 0.4.х по идее это тоже не должно было работать.

  server {
      listen  80;
        listen  443;
      ssl on;
      ssl_certificate      /etc/nginx/cert.pem;
      ssl_certificate_key  /etc/nginx/cert.key;
      ssl_protocols  SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
      ssl_prefer_server_ciphers   on;

        server_name  example.com;

        root   /var/www;
        index  index.html;
                               location /admin/ {
          if ($server_port = 80) {
              rewrite ^\/(.*)$ https://$server_name/$1 permanent;
          }
      }
      location / {
          if ($server_port = 443) {
              rewrite ^\/(.*)$ http://$server_name/$1 permanent;
          }
      }
  }

таким образом я админку защищал самоподписаным сертификатом от разных
любопытных товарищей. и все работало. а 0.5.7 на любые http запросы
отвечает исключительно "400 Bad Request The plain HTTP request was
sent to HTTPS port"

80 порт он похоже тоже как ssl открыл :( как побеждать? 2 раза server?
ломает дублировать - очепяток наделаю даже с копипасте, ибо в отличие
от этого учебного конфига в реальном еще много всего про fastcgi. или
может можно выделить как то общую часть?

include.

пробовал писать
listen 80;
ssl off;
listen 443;
ssl on;
ругается...

Уже не в первый раз у меня возникает ощущение, что пришло поколение админов,
которые не настраивали SSL в mod_ssl, не говоря уже об Apache-SSL,
а занялись этим сразу в nginx'е. Иначе бы таких вопросов не возникало.

Может быть, действительно сделать

    server {
       listen   80;
       listen   443 default ssl;

       ...

       location /some/ {
           if ($ssl = "") {
               ...
           }
       }

?
Правда, я пока не вижу, есть ли здесь какие-нибудь подводные камни.


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.