Ошибочный редирект с 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
и над ServerAdmin [email protected] вставляем
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
Добавляем 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. Альтернативное решение описали тут.