Переезд на ssl

Статус
В этой теме нельзя размещать новые ответы.

bigbrain911

Проверенные
Сообщения
203
Решения
1
Реакции
17
Баллы
3,320
Добрый вечер, подскажите. установил ssl на сервер, стоит nginx+apache2, другие скиты нормально заводятся, а вот форум нет, пишет ERR_TOO_MANY_REDIRECTS, установил $_SERVER['HTTPS'] = 'on'; в конфиге и все заработало, но хотелось бы услышать мнение специалистов, $_SERVER['HTTPS'] = 'on'; это костыль или нормальное явление? Может нужно дальше копать конфиг nginx чтобы нормально отрабатывало? Нужно ли что то вносить в .htaccess?
 
Последнее редактирование:
'HTTPS' - Принимает непустое значение, если запрос был произведен через протокол HTTPS.
Nginx должен передавать заголовок HTTPS, а апач уметь ловить его. Плюс редирект на https нужно делать на nginx - удобней и быстрее.
 
Smalesh, Спасибо, тогда подскажите как правильно заставить nginx передавать заголовки apache2 ?

Код:
server {
listen 80 default_server;
server_name www.zloygames.com zloygames.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl default_server;
server_name www.zloygames.com zloygames.com;

    ssl  on; # включаем поддержку ssl
    ssl_certificate ****************; # файл цепочки сертификатов
    ssl_certificate_key    *********************; # приватный ключ


        
#        if ($allowed_country = no) {
#            return 404;
#        }
         access_log off;
         log_not_found off;
#        error_log /var/log/nginx/error_log;
#        access_log /var/log/nginx/access_log;
server_name_in_redirect off;

location ~* \.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|flv|mp3|dem)$ {
root /var/www/zloygames.com/;
}

# Перенаправление на back-end
location / {
proxy_pass http://127.0.0.1:8080/;
include /etc/nginx/proxy_params;
}
}

и proxy_params

Код:
proxy_redirect    off;
proxy_set_header  Host $host;
proxy_set_header  X-Real-IP $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
proxy_connect_timeout 90;
 
На nginx лепим заголовок
Код:
proxy_set_header X-Forwarded-Proto $scheme;
На апаче проверяем и ставим флаг
Код:
SetEnvIf X-Forwarded-Proto https HTTPS=on
Как пример
 
Smalesh, спасибо, все завелось без $_SERVER['HTTPS'] = 'on'; правда я только в nginx добавил
proxy_set_header X-Forwarded-Proto $scheme; и сразу все заработало, но для страховки все же добавил в хост сайта на апаче SetEnvIf X-Forwarded-Proto https HTTPS=on

Тогда последний вопрос по сертификату, сегодня купил сертификат на 2 года от comodo, хотя пишет уже другую фирму, но там ребрендиг был что ли, суть вопроса, проверял сайт на ssl, один из сайтов выдал красным:
Корректная цепочка от недоверенного CA.
Self Signed SSL Сертификат установлен правильно!

На другом сайте:

This server supports weak Diffie-Hellman (DH) key exchange parameters. Grade capped to B.

По сути после покупки было 2 файла:
zloygames_com.ca-bundle
zloygames_com.crt
По одному из мануалов для nginx, срастил эти файлы в 1, взял файл ключа и подключил
Код:
ssl_certificate ****************; # файл цепочки сертификатов
ssl_certificate_key    *********************; # приватный ключ

Может что то не так выполнил?
 
По одному из мануалов для nginx, срастил эти файлы в 1, взял файл ключа и подключил
Для nginx сертификаты сшиваются в бандл, т.е. в один файл, тут главное - соблюдать порядок, сначала идет сертификат домена, затем промежуточный, в самом низу - корневой. Т.е. иерархия.
В остальном, я не знаю и знать не хочу, где чего у кого пишет, это к телепатам.

Diffie-Hellman (DH) key exchange parameters
Млять. Здесь не курсы системного администрирования.

Forward Secrecy & Diffie Hellman Ephemeral Parameters

The concept of forward secrecy is simple: client and server negotiate a key that never hits the wire, and is destroyed at the end of the session. The RSA private from the server is used to sign a Diffie-Hellman key exchange between the client and the server. The pre-master key obtained from the Diffie-Hellman handshake is then used for encryption. Since the pre-master key is specific to a connection between a client and a server, and used only for a limited amount of time, it is called Ephemeral.

With Forward Secrecy, if an attacker gets a hold of the server's private key, it will not be able to decrypt past communications. The private key is only used to sign the DH handshake, which does not reveal the pre-master key. Diffie-Hellman ensures that the pre-master keys never leave the client and the server, and cannot be intercepted by a MITM.

All versions of nginx as of 1.4.4 rely on OpenSSL for input parameters to Diffie-Hellman (DH). Unfortunately, this means that Ephemeral Diffie-Hellman (DHE) will use OpenSSL's defaults, which include a 1024-bit key for the key-exchange. Since we're using a 2048-bit certificate, DHE clients will use a weaker key-exchange than non-ephemeral DH clients.

We need generate a stronger DHE parameter:

Код:
cd /etc/ssl/certs

openssl dhparam -out dhparam.pem 4096

And then tell nginx to use it for DHE key-exchange:

Код:
ssl_dhparam /etc/ssl/certs/dhparam.pem;
 
Подскажите, может кто то сталкивался, после переезда на https, скажем так прошла почти неделя, в поиске гугл выдает сайт без https, даже по поисковому запросу домену с https://, при этом яндекс выдает как с https:// так и с http://
В гугл вебмастер и яндекс вебмастер сайты добавлены, причем как по http так и по https
 
Последнее редактирование:
В гугл вебмастер и яндекс вебмастер сайты добавлены, причем как по http так и по https
Нужно только https + редирект 301 с http-версии.
Например
В robots.txt полностью урл, с протоколом (если где еще работает).
 
Но я читал что в вебместере гугла и яндекса, это отдельные домены - http и https, тем более удаление http из админки вебмастера ни на что не повлияло, в nginx в настройках домена стоит редирект с http на https, в яндексе есть и старые без https страницы и новые, а в гугле почему то только http
 
это отдельные домены - http и https
Да, отдельные. Например у яндекса есть ровно 4 шага.

У гугла тоже есть, лень искать. В сухом остатке
только https + редирект 301 с http-версии.
 
Smalesh, все эти шаги проделаны, тем более яндекс проиндексировал и старый без ssl домен и с http, а вот гугл не хочет, в nginx редирект есть:

Код:
server {
listen 80 default_server;
server_name www.zloygames.com zloygames.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl default_server;
server_name www.zloygames.com zloygames.com;
 
Последнее редактирование:
  • Мне нравится
Реакции: Hope
Smalesh, Спасибо, но я все это уже десяток раз читал, смысл не в том чтобы перенести рейтинг и тд, смыл в том что домену 1 месяц и была миграция с булки со старого домена на этот, потом через месяц прикрутил https к домену, но вот почему то гугл его не видит, а яндекс видит, сижу уже сутками перечитываю информацию, не могу разобраться.
 
А теперь минутку внимания. Специально для хитрожопых или альтернативно одаренных.
Стер копирайты переводчика - лишился всяческой поддержки, как минимум с моей стороны.
Вопрос можно закрывать.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу