Переезд с http на https в Веб-окружении 1С-Битрикс | Битрикс-веб-мастер
В последнее время очень участились запросы на настройку сайтов на https-защиту.
Для специалиста в администрировании серверов это простое дело, а вот для всех остальных, данный процесс может быть очень даже не простым. Попробую в общих чертах обрисовать процесс добавления сертификата для сайта, размещенного на виртуальной машине 1С-Битрикс (для варианта, когда сайт установлен как дополнительный для веб-окружения).
Перед началом работ по переносу сайта с http на https убедитесь, что у вас на сайте отсутствуют абсолютные ссылки. Чаще всего такое встречается в текстах, которые прописывают контент-менеджеры — они обычно тексты пишут в каком-то текстовом процессоре, а потом просто копируют в редактор. При этом ссылки все остаются с указанием протокола и домена. Тут нужно или глазами просматривать, или писать скрипт проверки — все индивидуально.
Для начала получаем сертификат. Где вы будете брать сертификат и какой лучше выбрать — это оставлю за кадром — в сети очень много информации по данному вопросу. Для установки SSL в nginx потребуются следующие файлы: коренвой сертификат (root), сертификат посредника (intermediate) и непосредственно сам сертификат для домена.
Перейдем сразу к процессу создания сертификата. Будем считать, что вы выбрали обычный сертификат с проверкой одного домена.
Итак, вы начинаете генерацию сертификата. На первом же шаге система вам генерирует ключ (обычно он показывается в простом текстовом поле и подразумевается само собой, что вы должны его скопировать себе и сохранить). Это ваш секретный ключик, который нужно! сохранить — без него все, что дальше — бесполезно!
На основании этого, сохраненного вами ключа будет сгенерирован сертификат для вашего домена (или доменов), который, скорей всего, будет выслан вам на контактный e-mail, но, возможно, также будет и ссылка на скачивание прямо в панели.
Будем считать, что ключик у вас уже есть (самое главное, есть личный ключ, который сохраняем в виде: domain_ru.key). Нас интересуют всего 2 файла: domain_ru.crt и domain_ru.key.
Авторизуемся в веб-окружении под root-пользователем. Создаем папку (_cur_date_domain_ — пометка с текущей датой и доменом, если на сервере несколько доменов заведено):
mkdir ~/_cur_date_domain_
В данную папку заливаем наши файлы с сертификатом.
Дальше, эти 2 файла нужно объединить в один общий (также с пометкой даты создания, чтобы потом было проще менять на новый):
cat domain_ru.key domain_ru.crt domain_ru.ca-bundle >> domain.ru_cur_date.pem
domain_ru.ca-bundle — цепочка сертификатов от сервера лицензий. Более подробно про то, какие сертификаты объединять, можно почитать тут
И копируем полученный файл в список сертификатов сервера:
cp domain. ru_cur_date.pem /etc/nginx/certs/domain.ru_cur_date.pem
Дальше открываем меню виртуальной машины и переходим в раздел управления сертификатами (Manage web nodes in the pool — Configure certificates — Configure own certificate). Вводим название сайта. Т.к. файл с сертификатом мы положили в папку /etc/nginx/certs/ то мы можем не писать полный путь, а указать лишь относительный путь от данной папки. Поэтому, при запросе сертификатов прописываем просто название нашего сгенерированного файла.
Либо можно прописать сертификат вручную. Для этого нужно изменить файл сертификата
/etc/nginx/bx/site_avaliable/bx_ext_ssl_domain.ru.conf
(если сайт заведен в веб-окружении как основной, править нужно файлы /etc/nginx/bx/site_avaliable/ssl.s1.conf и /etc/nginx/bx/site_avaliable/s1.conf)
В файл /etc/nginx/bx/site_avaliable/bx_ext_ssl_domain.ru.conf необходимо включить наши файлы сертификата.
Для этого комментируем строчку include bx/conf/ssl. conf; (вставляем впереди нее #) а вместо нее вставляем содержимое файла /etc/nginx/bx/conf/ssl.conf
Во вставленном коде, необходимо указать наши ssl-сертификаты:
ssl_certificate /etc/nginx/ssl/domain.ru.pem ssl_certificate_key /etc/nginx/ssl/domain.ru.pem
Сохраняем файл и проверяем конфигурацию на отсутствие ошибок:
nginx-t
Дальше, нам нужно настроить, чтобы сайт был доступен только по https. Для этого открываем файл:
/etc/nginx/bx/site_avaliable/bx_ext_ssl_domain.ru.conf
В данном файле после блока
server_name domain.ru www.domain.ru
пишем:
if ($scheme = http) { return 301 https://$server_name$request_uri; }
Еще раз проверяем конфигурацию nginx и перезагружаем nginx. Если все было сделано верно — вы получите корректно настроенный 301-й редирект с http на https с установленным для домена сертификатом.
Для проверки корректности установки сертификата вы можете воспользоваться сервисом.
Как видите, данный процесс не такой уж и сложный. Далее не забудьте изменить адрес sitemap.xml и хост в robots.txt, а также изменить протокол для адресов в генераторе вашей карты сайта (если, конечно, ваш генератор карты не делает этого сам. К примеру, мой генератор карты сайта, построенный на основе модуля поиска определяет протокол автоматически).
Update 2017-02-02. Шпаргалка по SSL-сертификатам:
Запрос на выдачу сертификата и приватный ключ удобно генерировать в Онлайн CSR Генератор.
Основные цепочки сертификатов:
Comodo Essential SSL:
cat EssentialSSLCA_2.crt ComodoUTNSGCCA.crt UTNAddTrustSGCCA.crt AddTrustExternalCARoot.crt > yourDomain.ca-bundle
Comodo Essential SSL\PositiveSSL:
cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > yourDomain.ca-bundle
RapidSSL
cat ServerCertificate. cer CACertificate-1.cer CACertificate-2.cer > yourDomain.ca-bundle
Сервис от Qualys SSL Labs представляет очень подробную техничесткую информацию о настройке ssl на Вашем сайте.
Update 2018-07-10. Замечательное видео о выпуске сертификата:
Инструкция на сайте ssl.com.ua..
Update 2018-07-13. Как искать http://
Если ваш сайт переежает с http на https — первое, что вы должны сделать — это избавиться от всех http:// ссылок.
- Необходимо заменить все внутренние абсолютные ссылки на относительные. К примеру, ссылку http://you.site/catalog/section/product/ нужно заменить на /catalog/section/product/ , т.е. ссылки без указания протокола и доменного имени. Заменить нужно том числе и все ссылки на медиаконтент (изображения, документы, видео, файлы стилей, файлы js-скриптов, подключение разных внешних сервисов).
- После переезда на https — нужно настроить 301-й редирект со старого протокола на новый, проверить, чтобы все ссылки на сайте имели корректный формат, все канонические ссылки были заменены, ссылки в карте сайта были заменеы
- Пройтись по разным типовым страницам сайта и проверить, чтобы адресная строка подсвечивалась зеленым цветом — если это так, то вы все сделали верно.
Но как же искать эти все http? Не просматривать же вручную все элементы инфоблока? Для поиска протокола в элементах инфоблоках можно отрыть в административном разделе сайта страницу Настройки — Инструменты — SQL-запрос и тут выполнить запрос:
select `ID`, `IBLOCK_ID` from `b_iblock_element` where `DETAIL_TEXT` like '%http:%';
В результате вы получите список из ID элементов и ID инфоблоков, в которых эти элементы лежат — остается только пройтись по этим элементам и внести правки.
Для поиска http-ссылок в файлах можно воспользоваться сервером (есил вам повезло и сайт у вас хотя бы на VPS и у вас есть ssh-доступ к файлам сайта). Переходим в корневую папку сайта и запускаем поиск по всем файлам, за исключением файлов ядра:
grep -inR "http://" --exclude-dir={bitrix,upload,1} --exclude={'*.xml','*.jpg','*.png','*.gif','*.log'} . > search_res.log
В результате, в корне сайта появится файл search_res.log, в котором будут перечислены все файлы, в которых нужно внести правки (из анализа будут исключены папки ядра, а также файлы с изображениями и логами). После этого можно аналогичный поиск прогнать в папке с шаблоном сайта, чтобы http-ссылок не осталось в шаблонах компонентов или, что еще хуже — в header.php и footer.php
Устранить ошибку «Работа с сокетами» для CMS Битрикс
3 of 3
closed without completion
publication
open for proposals
closed without completion
Устранить ошибку «Работа с сокетами» для CMS Битрикс. После установки SSL сертификата выдает ошибку.
текст ошибки:
Работа с сокетами | Ошибка! Не работает |
Выполнение агентов на cron | Успешно |
Дополнительные функции | |
Параметры подключения к базе данных | Успешно |
Лишний вывод в файлах конфигурации | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Сохранение сессии без UserAgent | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Настройки сайтов | Правильные |
Передача объектов по ссылке | Успешно |
Размер стека и pcre.recursion_limit | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Вызов method_exists на строке | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Загрузка файла | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Загрузка файла больше 4Мб | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Загрузка файла через php://input | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Передача POST запроса с большим числом параметров | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Отправка почты | Успешно |
Отправка почтового сообщения больше 64Кб | Успешно |
Проверка на наличие неотправленных сообщений | Успешно |
Внутреннее перенаправление (функция LocalRedirect) | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Фактическое ограничение памяти | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Работа с файлами кеша | Успешно |
Доступ к серверу обновлений | Успешно |
HTTP авторизация | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
Создание и запуск файла | Замечание. Не удалось проверить из-за ошибки в работе с сокетами |
- Proposals 2
date online rating cost time to complete
1 day400 UAH
1 day400 UAH
Добрый день.Могу Вам помочь. skype= tsyuha, icq= 219788856, e-mail= [email protected]
1 day500 UAH
1 day500 UAH
Если еще актуально — могу выполнить.