Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

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

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

Discussion in 'Модули DLE' started by Dr_Brown, Jan 25, 2017.

?

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

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

    45 vote(s)
    45.9%
  2. 2. Нет, мне похуй

    35 vote(s)
    35.7%
  3. 3. Хочу но не могу админить сервера

    7 vote(s)
    7.1%
  4. 4. Я не лижу жопу Google и Яндекс

    8 vote(s)
    8.2%
  5. 5. А что это такое?

    3 vote(s)
    3.1%
25.01.17 в 23:38
19.03.19 в 20:17
71
14,511
10
  1. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Joined:
    Dec 19, 2016
    Messages:
    568
    Best Answers:
    0
    Ratings:
    +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. Делаем

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

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

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

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

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

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

    Code:
    --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), в конфиг по домену, в виртуальный хост требуется добавить следующую директиву:

    Code:
    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:

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

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

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

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

    Code:
    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 мес., то его необходимо продлить, это можно сделать из консоли, командой:

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

    Code:
    ./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 бит:

    Code:
    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 добавляем следующие директивы:

    Code:
     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 { нашего домена, и ищем где уже подключен наш сертификат и ключ, должно быть примерно следующее:

    Code:
    ........
    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. Добавляем сюда ниже следующие директивы:

    Code:
    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";
    чтобы выглядело так:

    Code:
    ........
    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, командой из консоли:

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

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

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

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

    2017-01-26 (1).png

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

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

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

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


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

    Gar1k Бывалый

    Joined:
    Jan 28, 2016
    Messages:
    644
    Best Answers:
    0
    Ratings:
    +82 / 6 / -0
    не че так расписал;)
     
  3. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Joined:
    Dec 19, 2016
    Messages:
    568
    Best Answers:
    0
    Ratings:
    +160 / 4 / -0
    Ждите продолжение завтра, Модераторы пжл. выделите тему важной, в связи с актуальностью перехода на SSL
     
  4. evgfreeman

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

    Joined:
    Apr 26, 2016
    Messages:
    3,383
    Best Answers:
    7
    Ratings:
    +1,543 / 214 / -0
    А как же moonwalk и hdgo будет работать с https?
     
  5. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Joined:
    Dec 19, 2016
    Messages:
    568
    Best Answers:
    0
    Ratings:
    +160 / 4 / -0
    не проверял ещё.
     
  6. Роман

    Забанен

    Joined:
    Mar 21, 2015
    Messages:
    1,650
    Best Answers:
    0
    Ratings:
    +1,817 / 0 / -0
    Ближайшее время работать не будет, но я общался сказали монвали в течении следующей недели переедут на ssl
     
    • Нравится Нравится x 3
  7. evgfreeman

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

    Joined:
    Apr 26, 2016
    Messages:
    3,383
    Best Answers:
    7
    Ratings:
    +1,543 / 214 / -0
    Очень хорошая новость, когда вы поговорили с волками?
     
  8. RedHotChiliPepper

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

    Joined:
    Jun 23, 2016
    Messages:
    147
    Best Answers:
    0
    Ratings:
    +83 / 0 / -0
    Первое время после перехода на https советую чтобы сервер отдавал данные в обе стороны: http и https, а как робот проиндексирует https, то 301.

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

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

    Joined:
    Jun 11, 2015
    Messages:
    7,433
    Best Answers:
    32
    Ratings:
    +4,062 / 137 / -0
    upload_2017-1-25_23-10-8.png
     
    • Нравится Нравится x 2
  10. evgfreeman

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

    Joined:
    Apr 26, 2016
    Messages:
    3,383
    Best Answers:
    7
    Ratings:
    +1,543 / 214 / -0
  11. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Joined:
    Dec 19, 2016
    Messages:
    568
    Best Answers:
    0
    Ratings:
    +160 / 4 / -0
  12. Ботяра

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    0
    Best Answers:
    54
    Ratings:
    +711 / 74 / -0
    не вижу смысла выделять важной тему в разделе о ДЛЕ!
    И потом установка SSL на сайте, не такая уж и сверхтрудная задача, при том что уже ранее были подобные темы, и про правильные редиректы с http на https в ДЛЕ...
    отличная новость! iframe.video уже перешли на поддержку https сайтов :)
     
  13. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

    Joined:
    Dec 19, 2016
    Messages:
    568
    Best Answers:
    0
    Ratings:
    +160 / 4 / -0
    @byroot, для некоторых это космос. Ну хоть закрепили, и на том спасибо.:)
     
    • Нравится Нравится x 1
  14. Ботяра

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    0
    Best Answers:
    54
    Ratings:
    +711 / 74 / -0
    если тема будет актуальной - она итак будет в последних висеть, там уже вполне возможно и метку/закрепление получит!
     
  15. Karabas Barabas

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

    Joined:
    Nov 20, 2015
    Messages:
    8,150
    Best Answers:
    1
    Ratings:
    +3,748 / 12 / -0
    Тема не полноценная, под панель Vesta нет в теме ни чего. Что за дискриминация по панелям?:D
     
    • Нравится Нравится x 1
  16. Ботяра

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    0
    Best Answers:
    54
    Ratings:
    +711 / 74 / -0
    панельная дискриминация!

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

    Dr_Brown Бывалый

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

    Dr_Brown Бывалый

    Joined:
    Dec 19, 2016
    Messages:
    568
    Best Answers:
    0
    Ratings:
    +160 / 4 / -0
    @Karabas Barabas, ну вот же в Весте активация SSL в разделе доменов:

    2017-01-26.png

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

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

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

    Забанен

    Joined:
    Jul 2, 2015
    Messages:
    855
    Best Answers:
    0
    Ratings:
    +386 / 0 / -0
    Зачем эти танцы с бубнами со старыми панелями?
    CERBOT бывает не сразу получает обновление на серт поэтому нужно еще дополнительно делать проверку на актуальность даты серта.
    В ISP 5,VestaCP,Cpanel уже все интегрировано и получение сертификата не затруднит даже не знающего человека, все что нужно это поставить галочку на приобретение сертификата.
     
    • Нравится Нравится x 1
  20. TopicStarter Overlay
    Dr_Brown

    Dr_Brown Бывалый

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