Переход на https для сайта на 1С Битрикс
Когда пользователь нажимает на сайте ссылку или заполняет форму авторизации, на сервер отправляется запрос. Если используется протокол http, то данные передаются в открытом виде, что небезопасно, т.к между клиентом и сервером есть посредники(роутеры, провайдеры…), через которые можно перехватить данные.
Крупные интернет-ресурсы стали переходить на https с начала 2000-х годов. Причина — защищенное хранение данных, https с помощью шифрования обеспечивает защиту соединения между клиентом и сервером.
Почему актуально переводить сайт на https?
1. Защищенное соединение.
2. C 2017 года Google Chrome будет отмечать сайты, работающие по протоколу http, как «незащищенные», что, в конечном счете, скажется на посещаемости.
3. Для Google теперь наличие SSL-сертификата является фактором ранжирования.
Становится очевидным, что переходить на https нужно, т. к он дает конкурентные преимущества.
Но как перейти на защищенный протокол не потеряв позиции сайта?
Ведь поисковики считают разными ссылки с протоколами https и http.
Ответ: Ни Яндекс ни Google не дают гарантии, что позиции сохранятся. Однако, опыт показывает, что позиции после перехода только растут, главное, следовать инструкции.
Инструкция по переводу сайта на 1С Битрикс с http на https протокол.
Для начала, вам потребуется обратиться на хостинг, купить SSL-сертификат и установить его. Этот процесс описывать не стану, т.к им занимаются администраторы сервера, на котором находится ваш сайт.
Заменить все ссылки с http на относительные или абсолютные ссылки c протоколом https.
Например, /company/
— относительная ссылкаhttp://mysite.ru/company/
— абсолютная ссылка с протоколом httphttps://mysite. ru/company/
— абсолютная ссылка с протоколом https//mysite.ru/company/
— абсолютная ссылка с относительным протоколом
Просматриваем, а лучше сканируем программно, все тексты с абсолютными ссылками и делаем их относительными.
На всех внешних ресурсах, где установлены ссылки на ваш сайт, замените в ссылках протокол на https.
Меняем в настройках карты сайта протокол соединения и заново генерируем файл sitemap.xml.
В robots.txt HOST теперь можно не указывать, подробнее читайте в статье Яндекса 301 редирект полностью заменил директиву HOST
Настраиваем вебмастера Яндекса и Google.
Добавляем новый ресурс https://mysite.ru
В прежнем Яндекс.Вебмастере (http://mysite.ru/) на странице Индексирование-Переезд сайта указываем «Добавить HTTPS». По времени этот переезд обычно занимает 3-4 недели.
Передаем в вебмастера ссылку на sitemap.
Также вам нужно перенести всю информацию с прежнего Яндекс.Вебмастера, такую как геотаргетинг, товары, справочник организаций и т.д
Ошибки сканирования удобнее смотреть через вебмастер google.
Проверьте формы обратной связи.
В некоторых случаях аяксовые запросы указывают абсолютные ссылки, значит будет появляться ошибка отправки данных, не будут работать формы.
Проверьте выгрузки на торговые площадки, такие как Яндекс.Маркет.
В кастомных выгрузках протокол может быть жестко прописан.
Все файлы выгрузки нужно сгенерировать заново.
В настройках интеграции с 1С укажите ссылку с https
При стандартной интеграции с 1С, достаточно заменить протокол http на https в ссылки на сайт, которая указана в 1С в настройке интеграции с сайтом.
Ссылка должна выглядеть так:https://site. https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Критерий успешности перехода на https:
— сайт просканирован, для всех страниц код ответа сервера 200
— вебмастера Яндекса и Google настроены, в них передан sitemap.xml с новыми ссылками и обновлен robots.txt
— в robots.txt прописан HOST с https и Sitemap с https
— в экспортируемых файлах ссылки с https
— интеграция с 1С проходит без ошибок
Стоимость: от 10 000 ₽
Поделиться:
В список услуг
Ошибочный редирект с https на http://$host:443
СМСдизайн
актуально
Главная
Блог
Битрикс
Ошибочный редирект с https на http://$host:443
Ошибка неверного порта при отдельных переходах по страницам характерна не только для Виртуальной Машины, а и многих самостоятельных конфигураций с Nginx. Однако, данная ошибка присутствует во всех VM Bitrix на протяжении последних лет.
Как проявляется баг?
Самыми частыми симптомами появления проблемы являются появившиеся ошибки в отчетах поисковых краулеров Google и Яндекс. В один прекрасный день после перехода на https протокол в отчетах начинают попадаться ошибочные страницы с url — http://host.com:443/page или наоборот https://host.com:80/page
Простым взглядом на строки легко понять, что проблема кроется в том, что страница «находящаяся» на https
пытается быть открытой по протоколу http или в «иную сторону».Зачастую найти точки входа ботов на ошибочные страницы довольно сложно. Это могут быть результаты поиска, переход после авторизации, результаты форм и что угодно еще. Радует то, что по-большому счету искать причину и не нужно. Главное устранить эти «нелогичные» редиректы на уровне сервера.
Отдельным случаем проявления данной проблемы является открытие страницы с <i>ошибкой 400</i>. На данной странице красуется сообщение: The plain HTTP request was sent to HTTPS port
Правим конфиги «Виртуалки»
/etc/httpd/bx/conf/bx_ext_fgstockstudio.com.conf
Если у вас на виртуальной машине работает один сайт, то понадобится найти файл конфига Апапч:
/etc/httpd/bx/conf/default.conf
и над
ServerName https://YOUR_SITE
При многосайтовой конфигурация виртуалки делаем тоже самое, но в файле нужного сайта bx_ext_YOUR_SITE.conf
Альтернативный способ
Иногда описанного выше недостаточно. Приходится идти глубже и править директивы связанные с страницами ошибок. Ищем файл отвечающий за конфиг nginx нашего ssl домена
/etc/nginx/bx/site_avaliable/ssl.s1.conf
Добавляем error_page 497 https://$host$request_uri;. Получим нечто похожее на:
# Default SSL certificate enabled website server { listen 443 default_server http2; server_name _; # Enable SSL connection server_name_in_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; proxy_set_header Host $host:443; proxy_set_header HTTPS YES; set $proxyserver "http://127. 0.0.1:8888"; set $docroot "/home/bitrix/www"; index index.php; root /home/bitrix/www; include bx/conf/bitrix.conf; # Include server monitoring API's include bx/server_monitor.conf; error_page 497 https://$host$request_uri; }
Проблема должна исчезнуть. Если вам известны иные методы напишите нам в комментариях.
Решение наверняка 🙂
Если не помогло все вышеописанное и ошибка остается — то причина в файле настроек nginx :
/etc/nginx/bx/site_avaliable/bx_ext_s1.conf
Нужен именно файл обычного протокола http (bx_ext_), а не https (bx_ext_ssl)
Добавляем return 301 https:/YourDomain.com$request_uri;. Получим нечто похожее на:
# Ansible managed # Additional website http server { listen 80 ; server_name YourDomain.com www.YourDomain.com; return 301 https://YourDomain.com$request_uri; ... ... error_page 497 https://$host$request_uri; }
В 2020 году кроме коронавируса появилось еще что-то новое … и иногда нужно колдовать совсем не с nginx, а с http. Альтернативное решение описали тут.
Возврат к списку
Выполнить перенаправление 301 с http на https в Apache Tomcat
спросил
Изменено 5 лет, 9 месяцев назад
Просмотрено 4к раз
Я настроил SSL в своем веб-приложении. Я установил сертификат в свой Tomcat в соответствии с необходимыми шагами.
Учебник, которому я следовал, https://www.mulesoft.com/tcat/tomcat-security
Я принудительно использовал https поверх http, что означает, что любой запрос на http будет перенаправлен на https. Я внес следующие изменения в свой server.xml
- Подробнее: https://www.mulesoft.com/tcat/tomcat-security#sthash.6zIVA27x.dpuf
Изменения web.xml следующие:
<ограничение безопасности> <коллекция веб-ресурсов>SecureConnection /* веб-ресурс-коллекция><ограничение пользовательских данных> КОНФИДЕНЦИАЛЬНО ограничение данных пользователя> безопасность-ограничение>
Однако выполняемое перенаправление является временным перенаправлением, т.е. 302. Я хочу использовать переадресацию 301, т.е. постоянную переадресацию.
Как мне этого добиться?
- апач
- кот
- SSL
4
Это настроено в вашем Царстве. См. атрибут transportGuaranteeRedirectStatus
вашей конкретной реализации Realm.
https://tomcat.apache.org/tomcat-8.5-doc/config/realm.html
Пример: server.xml имеет это готовое
Область>
Он не устанавливает transportGuaranteeRedirectStatus
, поэтому по умолчанию используется 302. Если вы хотите, чтобы он использовал 301, просто добавьте атрибут transportGuaranteeRedirectStatus="301"
в Realm верхнего уровня (у вас может не быть вложенных Realms в зависимости от вашей конфигурации) и перезапустите Tomcat.
Пример:
Область>
Если в вашей конфигурации не определен тег Realm, Tomcat по умолчанию будет использовать NullRealm. Если вы хотите переопределить перенаправление в этой ситуации, вам просто нужно определить NullRealm с установленным на нем свойством transportGuaranteeRedirectStatus
.
Надеюсь, это поможет!
Зарегистрируйтесь или войдите
Зарегистрироваться через Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
ruby on rails — Как правильно перенаправить сайт с http на https без потери индексации Google
спросил
Изменено 4 года, 5 месяцев назад
Просмотрено 731 раз
Недавно я добавил поддержку SSL для старого веб-сайта Rails 2. 3.1. У меня есть следующий код для перенаправления с http на https:
Контроллер приложений:
before_filter :need_ssl защищенный защита need_ssl если RAILS_ENV=="производство" redirect_to "https://#{request.host}#{request.request_uri}", если только request.ssl? конец конец
Однако я получил сообщение от Google:
Приблизительно 80% ваших HTTP-страниц, которые были проиндексированы до миграции, больше не могут быть найдены ни на вашем сайте HTTP, ни на HTTPS.
Я посмотрел и обнаружил, что 572 был исключен из индексации из-за редиректа.
Как добавить правильный код для перенаправления, чтобы не потерять индексацию?
- ruby-on-rails
- https
- http-redirect
0
Это то, что я обычно делаю, чтобы перенести свой сайт на https
.
Перенаправить весь трафик http
на https
с 301 перенаправлением
на моем сервере nginx
настроить
{ слушать 80; имя_сервера myawesomewebsite. com; вернуть 301 https://myawesomewebsite.com$request_uri; }
Включить force_ssl
в config/application.rb
config.force_ssl = true
Редактировать: Спасибо всем за то, что проголосовали за мой ответ. Но, пожалуйста, также проверьте ответ @agilejoshua, так как он поместил много полезной информации.
6
Рекомендации Google
У Google есть особые рекомендации по перемещению сайта для начала использования SSL
Использовать серверную переадресацию 301
Перенаправьте своих пользователей и поисковые системы на страницу или ресурс HTTPS с помощью HTTP-перенаправления 301 на стороне сервера.
…
Переход с HTTP на HTTPS
Если вы переносите свой сайт с HTTP на HTTPS, Google рассматривает это просто как перемещение сайта с изменением URL-адреса. Это может временно повлиять на некоторые из ваших номеров трафика.
https://support.google.com/webmasters/answer/6073543
Это считается перемещением сайта с изменением URL
Перемещение сайта с изменением URL
URL-адреса страниц изменились.
Например: протокол меняется — с http://www.example.com на https://www.example.com
…
Ожидайте временные колебания рейтинга сайта во время переезда.
При любом значительном изменении сайта вы можете столкнуться с колебаниями рейтинга, пока Google повторно сканирует и переиндексирует ваш сайт. Как правило, для веб-сайта среднего размера перемещение большинства страниц в наш индекс может занять несколько недель; большие сайты могут занять больше времени. Скорость, с которой робот Googlebot и наши системы обнаруживают и обрабатывают перемещенные URL-адреса, во многом зависит от количества URL-адресов и скорости вашего сервера. Отправка карты сайта может помочь ускорить процесс обнаружения, и вы можете перемещать свой сайт по разделам.
https://support.google.com/webmasters/answer/34437
Перенаправление в Ruby
Итак, в вашем случае вы хотите убедиться, что используете переадресацию 301. По умолчанию redirect_to использует 302 в Ruby.
v2.3: https://api.rubyonrails.org/v2.3/classes/ActionController/Base.html#M001811
v5.2.1: https://api.rubyonrails.org/v5.2.1/classes /ActionController/Redirecting.html#method-i-redirect_to
Перенаправление происходит как заголовок 302 Found, если иное не указано с помощью параметра :status:
Обновленный код для Rails 2.3
redirect_to("https://#{request.host}#{request.request_uri}", :status => 301) если только request.ssl?
Альтернативный код для Rails 3.1+
Используйте force_ssl , как указано в https://edgeguides. rubyonrails.org/configuring.html
config.force_ssl заставляет все запросы обслуживаться через HTTPS с помощью промежуточного программного обеспечения ActionDispatch::SSL и задает для config.action_mailer.default_url_options значение { протокол: ‘https’ }.
config.force_ssl = истина
Проблемы с индексированием
Но временные проблемы с индексированием могут возникнуть. Чтобы помочь Google быстрее находить ваши новые HTTPS-страницы, вам следует создать карту сайта с вашими новыми HTTPS-страницами и добавить ее в Google Search Console https://search.google.com/search-console/about.
Подробнее о форматах карты сайта, которые принимает Google, см. на странице https://support.google.com/webmasters/answer/183668.
3
Rails 3 по умолчанию использует перенаправление 302 (временное). Вы можете попробовать изменить его на 301 (постоянное) перенаправление и посмотреть, понравится ли это Google:
redirect_to("https://#{request.