Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Получаем бесплатный ssl сертификат letsencrypt класса a+ для вашего киносайта на dle

Тема в разделе "Модули DLE", создана пользователем Dr_Brown, 25 янв 2017.

?

Будете ли вы переходить на SSL?

  1. 1. Да, обязательно

    45 голосов
    45,9%
  2. 2. Нет, мне похуй

    35 голосов
    35,7%
  3. 3. Хочу но не могу админить сервера

    7 голосов
    7,1%
  4. 4. Я не лижу жопу Google и Яндекс

    8 голосов
    8,2%
  5. 5. А что это такое?

    3 голосов
    3,1%
25.01.17 в 23:38
19.03.19 в 20:17
71
12.157
10
  1. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
    Внимание! Все действия описанные ниже вы производите на свой страх и риск! Я не несу никакой ответственности за ваши кривые руки! Перед установкой обязательно сделать бекапы сервака, базы, сайта и всего, что вы можете повредить.

    Так-же здесь обсуждаются чисто технические моменты установки (кто решится) и перехода на SSL протокол https. А весь флуд обсуждаем в этих темах, типа нужен не нужен и т.д.:

    1. http://zerocoolpro.biz/forum/threads/kto-nibud-uzhe-postavil-ssl-na-kinosajty.8427/
    2. http://zerocoolpro.biz/forum/thread...tsja-dannye-o-kreditnyx-kartax-i-paroli.8482/

    Ссылки по теме:
    Оф. сайт: https://letsencrypt.org/
    Сайт CerBota: https://certbot.eff.org
    Сервис проверки класса SSL: https://www.ssllabs.com/ssltest/index.html

    Конфигурация сервера на котором вся эта ебля происходила:
    ISP-4 + debian-7-amd64 + nginx (фронт) + apache (бэк)

    Поехали....

    Глава первая: Получение сертификата и адаптация сайта для его использования.

    1. Подключаемся к сайту под рутом SSH через PuTty, или любым другим софтом для работы в консоли.

    2. Делаем

    Код:
    apt-get update
    3. Скачиваем сам CERBOT:

    Код:
    wget https://dl.eff.org/certbot-auto
    4. Устанвливаем права на CERBOT:

    Код:
    chmod a+x certbot-auto
    5. Остановить в сервисах панели apache и nginx, или любой другой сервис на порту 443. Если это не сделать, то домен не сможет пройти проверку и будет выдано сообщение что порт 443, занят.

    6. Пытаемся получить сертификат:

    Код:
    ./certbot-auto certonly --standalone -d bppa.agency -d www.bppa.agency --email [email protected]. 
    Будет установлен cerbot-auto и обновлено куча пакетов debian.

    где:
    Код:
    -d bppa.agency -d www.bppa.agency
    указываем ваш домен с www и без.

    Код:
    --email
    ваша админ почта по домену, либо любой другой адрес для аккаунта в LetsenScript

    7. Если все прошло удачно, вы должны получить примерное сообщение о том что сертификат выдан:

    2017-01-25.jpg

    Сам сертификат, ключ, аккаунт будут находится в /etc/letsencrypt, примерно так:

    2017-01-25 (1).png

    8. Теперь нужно добавить (активировать) сертификат в панели ISPManager, для чего нам нужно, скопировать содержимое, следующих файлов находящихся в /etc/letsencrypt/archive/ваш_домен/:

    cert1.pem - сам сертификат
    chain1.pem - промежуточный сертификат центра сертификации (цепочка)
    privkey1.pem - приватный ключ к сертификату

    9. Входим в панель с правами пользователя:

    2017-01-25 (2).png

    10. Переходим в раздел SSL сертификаты:

    2017-01-25 (3).png

    нажимаем кнопку создать и выбираем вкладку Тип сертификата существующий. Имя любое чтобы не запутаться, ну например название домена.

    11. В поле Приватный ключ вставляем инфу из privkey1.pem, в поле сертификат добавляем инфу из cert1.pem, поле пароль оставляем пустым, в поле цепочка сертификатов добавляем инфу из chain1.pem, примерно как на скриншоте:

    2017-01-25 (4).png

    и нажимаем ок.

    12. Сертификат отобразится в вашей панели как не установленный:

    2017-01-25 (5).png

    13. Теперь остается подключить его к домену, и проверить работу сайта с https. Для чего переходим в раздел домены, выбираем домен жертву, и нажимаем Изменить, и активируем галочку SSL, порт 443, сертификат выбираем наш ранее добавленный:

    2017-01-25 (6).png

    и нажимаем ок.

    14. Сервер должен автоматически перезагрузится (произойдет рестарт nginx), и возле домена появится ярлычок ssl:

    2017-01-25 (7).png

    15. Не забываем что у нас на бекэнде работает Apache, и для нормальной обработки на сайте ajax запросов (чтобы они шли тоже через https), в конфиг по домену, в виртуальный хост требуется добавить следующую директиву:

    Код:
    SetEnvIf X-Forwarded-Proto https HTTPS=on 
    Для чего возвращаемся в панель под root, переходим во вкладку домены, выбираем домен жертву, и нажимаем конфиг. Во вкладке Apache, там где виртуальный хост добавляем нашу директиву

    2017-01-25 (8).png

    нажимаем ок, и переходим во вкладку сервисы и делаем перезагрузку Apache.

    16. После всех проделанных манипуляций пробуем открыть наш сайт по протоколу https. Переходим в Админку, настройка системы Домашняя страница сайта: и указываем наш домен с https:

    2017-01-25 (9).png

    Нажимаем сохранить очищаем кеш в админке, в браузере и вообще везде где можно.

    17. Если все сделано правильно, переходим в адресную строку, и набираем наш сайт с https, и видим замочек и следующее, как на скриншоте:

    2017-01-25 (10).png

    Так должно быть на всех страницах. Проверяем все страницы сайта, во всех браузерах, включая мобильные, на планшете и смартфоне. Сайт везде должен нормально работать с https.

    18. Однако на главной странице сайта, и прочих (не знаю как у вас) соединение может быть не полностью защищено, так как некоторые картинки или скрипты до сих пор могут подгружаться на сайт по старому протоколу http. Более того блокируются видео с Ютубе, которые были добавлены на сайт стандартным способом, на старых версиях движка (в данном случае у меня trial 10.3) они шли по старому протоколу с http. И тогда мы видим следующее:

    2017-01-25 (11).png

    Это называется смешанный контент, т.е. сайт работает с https, а картинки и некоторые скрипты по http, и от этого нам нужно избавится. Я здесь не буду расписывать как это все поправить, об этом вы сможете почитать в этой статье:

    https://artemmian.ru/656-dle-na-https-osnovnye-problemy-i-ih-reshenie.html

    Хотя официальная поддержка DLE утверждает что их движок полностью работоспособен по протоколу https:

    http://forum.dle-news.ru/topic/69025-переход-с-http-на-https/

    Возможно если у вас версия движка 11.2 и вы ставите сайт с нуля, вы с подобными проблемами не столкнетесь, однако на уже работающих проектах, есть такие проблемы. Еще хуже, если вы свои картинки храните на внешних хостингах картинок типа FastPic которые до сих пор висят на http.

    19. Я исправил все проблемы по п.18, так как у меня новостей всего 5, а статических страниц тоже немного, и теперь нам нужно настроить правильно 301 редирект, что-бы не потерять в трафике, и отправить наш сайт на переиндексацию в Вебмастер Яндекс и Google. Для этого в корневой .htaccess добавляем такую конструкцию, которая у меня заработала нормально, в самом верху после RewriteEngine On:

    Код:
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Так как я давно хотел избавится от сайта c www, и я все равно попадаю на переиндекс, я ниже добавил следующую конструкцию, редиректа с www на без www:

    Код:
    RewriteCond %{HTTP_HOST} ^www\.(.*)$
    RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
    20. Далее идем в вебмастер яндекса, и ставим в разделе Переезд, чтобы сайт отображался с https, и ждем переиндекс (обычно 2-3 недели если страниц много), а в вебмастере Google просто тупо удаляем свой старый сайт c http, и добавляем с https на индексацию, ну далее по накатаной, подтверждаем права отправляем новый сайтмап и прочее (здесь можете со мной не согласится), а да совсем забыл, нужно подправить директивы в robots.txt:

    Код:
    Host: https://bppa.agency
    Sitemap: https://bppa.agency/sitemap.xml
    Вы указываете свой домен естно )))

    Если у Вас возникнут проблемы с Яндекс, и будет ошибка загрузки robots.txt, то нужно из редиректа исключить, сам robots.txt, что-бы он отдавался по http, тогда конструкция в .htaccess будет выглядеть так:

    Код:
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{REQUEST_URI} !^/robots.txt
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Но я это сделал заранее, так как уже столкнулся с подобной проблемой на прикручивании SSL к https://sovtor.com/

    21. Так как Сертификат LetsenCript имеет срок всего 3 мес., то его необходимо продлить, это можно сделать из консоли, командой:

    Код:
    ./certbot-auto renew --dry-run
    или добавить автоматическое обновление с выполнением 1 раз в мес, в серверный крон:

    Код:
    ./certbot-auto renew --quiet --no-self-upgrade 
    !не забываем остановить сервисы на 443 порту перед выполнением!

    но я пока эти команды не проверял...)))

    22. Самым последним шагом из этой всей эпопеей, это проверить какой же класс получился у сертификата, и правильные ли настройки сервера для работы по SSL. Для этого переходим на этот сервис:

    https://www.ssllabs.com/ssltest/index.html

    и проверяем наш домен, результаты проверки на скриншоте:

    2017-01-25 (12).png

    Как видно сертификат получил всего лишь класс С . Читайте ниже как поднять класс до A+ и тонко отстроить nginx для работы сайта c SSL протоколом.

    23. Ну и как работает сайт на DLE 10.3 tiral с сертификатом SSL можете посмотреть сами: https://bppa.agency


    Глава вторая: Повышаем класс сертификата до А+, и правильно настраиваем nginx для работы по протоколу SSL

    Я не буду здесь детально расписывать смысл каждой директивы для nginx, о них вы можете прочитать в этой статье: https://webshake.ru/post/175 или в этой https://habrahabr.ru/post/252821/

    1. Снова подключаемся по SSH под рутом к нашему серверу, и генирируем ключ Диффи-Хеллмана c длиной не менее 2048 бит:

    Код:
    openssl dhparam -out /var/www/httpd-cert/dr_brown/dh2048.pem 2048
    где путь /var/www/httpd-cert/dr_brown/ указываем свой, у меня именно в этом месте сложены сертификат и ключи, которые уже подключены к домену.

    2. После идем в /ect/nginx/ и открываем файл конфигурации nginx.conf и в секцию http { примерно после Virtual Host Configs добавляем следующие директивы:

    Код:
     ssl_prefer_server_ciphers on;
            ssl_session_cache shared:TLS:2m;
            ssl_session_cache shared:SSL:2m;
            ssl_session_timeout 24h;
            ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
            ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
    3. Идем в секцию server { нашего домена, и ищем где уже подключен наш сертификат и ключ, должно быть примерно следующее:

    Код:
    ........
    listen 91.223.180.64:443 ssl;
    .......
    .......
    .......
    ssl_certificate /var/www/httpd-cert/dr_brown/bppa.chained.crt;
    ssl_certificate_key /var/www/httpd-cert/dr_brown/bppa.key;
    
    4. Добавляем сюда ниже следующие директивы:

    Код:
    ssl_dhparam /var/www/httpd-cert/dr_brown/dh2048.pem;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
    add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";
    чтобы выглядело так:

    Код:
    ........
    listen 91.223.180.64:443 ssl;
    .......
    .......
    .......
    ssl_certificate /var/www/httpd-cert/dr_brown/bppa.chained.crt;
    ssl_certificate_key /var/www/httpd-cert/dr_brown/bppa.key;
    ssl_dhparam /var/www/httpd-cert/dr_brown/dh2048.pem;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
    add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";
    
    5. Сохраняем и проверяем конфиг nginx, командой из консоли:

    Код:
    nginx -t
    если никаких ошибок нет, делаем рестарт nginx из панели, или в консоли:

    Код:
    service nginx restart
    6. Снова проверяем работоспособность сайта, затем идем сюда

    https://www.ssllabs.com/ssltest/index.html

    и заново проверяем наш домен:

    2017-01-26 (1).png

    и как видим, мы получили класс A+.

    На этом все, ничего сложного все невозможное просто!

    Да и ещё забыл дописать, если вы используете серверный крон, например для генерации сайтмапа, то он тоже без ошибок должен работать по https.
    Так как у меня роботс txt Яшка не принимал, с конструкций описанной выше, где мы его исключали из редиректа, пришлось в хтасесе написать так:

    Код:
    <FilesMatch "robots.txt$">
    RewriteEngine off
    </FilesMatch>
    
    так как у меня ещё конструкция была на исключение www, но а у вас должно все работать.


    Выразить благодарность можно по следующим реквизитам:
    ЯД: 410011667726402
    WMR: R299593801566
     
    #1 Dr_Brown, 25 янв 2017
    Последнее редактирование: 26 янв 2017
    • Нравится Нравится x 10
  2. Gar1k

    Gar1k Бывалый

    Регистрация:
    28 янв 2016
    Сообщения:
    647
    Лучших ответов:
    0
    Рейтинги:
    +87 / 6 / -0
    не че так расписал;)
     
  3. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
    Ждите продолжение завтра, Модераторы пжл. выделите тему важной, в связи с актуальностью перехода на SSL
     
  4. evgfreeman

    VIP Кинотрафик v2

    Регистрация:
    26 апр 2016
    Сообщения:
    3.245
    Лучших ответов:
    7
    Рейтинги:
    +1.457 / 209 / -0
    А как же moonwalk и hdgo будет работать с https?
     
  5. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
    не проверял ещё.
     
  6. Роман

    Забанен

    Регистрация:
    21 мар 2015
    Сообщения:
    1.650
    Лучших ответов:
    0
    Рейтинги:
    +1.815 / 0 / -0
    Ближайшее время работать не будет, но я общался сказали монвали в течении следующей недели переедут на ssl
     
    • Нравится Нравится x 3
  7. evgfreeman

    VIP Кинотрафик v2

    Регистрация:
    26 апр 2016
    Сообщения:
    3.245
    Лучших ответов:
    7
    Рейтинги:
    +1.457 / 209 / -0
    Очень хорошая новость, когда вы поговорили с волками?
     
  8. RedHotChiliPepper

    Команда форума VIP Кинотрафик v2

    Регистрация:
    23 июн 2016
    Сообщения:
    147
    Лучших ответов:
    0
    Рейтинги:
    +83 / 0 / -0
    Первое время после перехода на https советую чтобы сервер отдавал данные в обе стороны: http и https, а как робот проиндексирует https, то 301.

    P.S.: прочел поверхностно, мб ТС упомянул об этом.
     
  9. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.299
    Лучших ответов:
    31
    Рейтинги:
    +3.896 / 96 / -0
    upload_2017-1-25_23-10-8.png
     
    • Нравится Нравится x 2
  10. evgfreeman

    VIP Кинотрафик v2

    Регистрация:
    26 апр 2016
    Сообщения:
    3.245
    Лучших ответов:
    7
    Рейтинги:
    +1.457 / 209 / -0
  11. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
  12. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    не вижу смысла выделять важной тему в разделе о ДЛЕ!
    И потом установка SSL на сайте, не такая уж и сверхтрудная задача, при том что уже ранее были подобные темы, и про правильные редиректы с http на https в ДЛЕ...
    отличная новость! iframe.video уже перешли на поддержку https сайтов :)
     
  13. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
    @byroot, для некоторых это космос. Ну хоть закрепили, и на том спасибо.:)
     
    • Нравится Нравится x 1
  14. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    если тема будет актуальной - она итак будет в последних висеть, там уже вполне возможно и метку/закрепление получит!
     
  15. Karabas Barabas

    Команда форума VIP Кинотрафик v2

    Регистрация:
    20 ноя 2015
    Сообщения:
    8.172
    Лучших ответов:
    1
    Рейтинги:
    +3.756 / 12 / -0
    Тема не полноценная, под панель Vesta нет в теме ни чего. Что за дискриминация по панелям?:D
     
    • Нравится Нравится x 1
  16. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    панельная дискриминация!

    флуд! пост на удаление :)
     
    • Нравится Нравится x 2
  17. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
    @Karabas Barabas, сегодня допишу до конца, там будет конфиги nginx, куда что добавлять, думаю что в Весте просто дописать, и все. Уж так давно Весту юзал, что не помню что там.
     
    • Нравится Нравится x 2
  18. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
    @Karabas Barabas, ну вот же в Весте активация SSL в разделе доменов:

    2017-01-26.png

    то что и у ISP, три поля. Конфиг nginx под минимальные настройки для работы с SSL, она сама должна прописать

    и в крон висит здача по обновлению сертификата

    sudo /usr/local/vesta/bin/v-update-letsencrypt-ssl
     
  19. Keiskar

    Забанен

    Регистрация:
    2 июл 2015
    Сообщения:
    870
    Лучших ответов:
    0
    Рейтинги:
    +397 / 0 / -0
    Зачем эти танцы с бубнами со старыми панелями?
    CERBOT бывает не сразу получает обновление на серт поэтому нужно еще дополнительно делать проверку на актуальность даты серта.
    В ISP 5,VestaCP,Cpanel уже все интегрировано и получение сертификата не затруднит даже не знающего человека, все что нужно это поставить галочку на приобретение сертификата.
     
    • Нравится Нравится x 1
  20. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Регистрация:
    19 дек 2016
    Сообщения:
    568
    Лучших ответов:
    0
    Рейтинги:
    +160 / 4 / -0
    @Keiskar, ну не у всех новые панели. А у многих хостеров ISP4 бесплатно идет. И никто не будет сейчас проводить такие глобальные ебли с переходом на другую панель. Кто разобрался пжл, а кто нет инструкция выше: http://zerocoolpro.biz/forum/thread...-klassa-a-dlja-vashego-kinosajta-na-dle.8494/
     
Яндекс.Метрика