У нас есть VPS-хостинг 2 сайта. WebsiteA.com имеет SSL.
WebsiteB.com не имеет SSL, но Google индексирует WebsiteB.com с URL-адресами HTTPS с WebsiteA.com
Пример: https://www.websiteB.com/url-from-website-A который, конечно, не существует и дает ошибку, но Google индексирует ее.
Дублирован не просто один URL-адрес, а каждый URL-адрес с веб-сайта A.
Мы предполагаем, что это влияет на SEO (как-то дублируется контент), потому что мы потеряли рейтинг.
Неправильная конфигурация VPS? Мы используем Ubuntu / Apache.
<VirtualHost *:80>
ServerName websiteA.com
ServerAlias www.websiteA.com
Redirect permanent / https://www.websiteA.com/
</VirtualHost>
<VirtualHost *:443>
ServerName websiteA.com
Redirect permanent / https://www.websiteA.com/
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/websiteA.com/public/
ServerName www.websiteA.com
php_flag display_errors On
php_value memory_limit 256M
php_value error_reporting 2047
php_value post_max_size 32M
php_value upload_max_filesize 32M
<Directory /var/www/websiteA.com/>
Require all granted
AllowOverride All
Options +FollowSymLinks
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/websiteA.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/websiteA.com/privkey.pem
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/websiteB.com
ServerName websiteB.com
ServerAlias www.websiteB.com
<Directory /var/www/websiteB.com/>
Require all granted
AllowOverride All
Options +FollowSymLinks
</Directory>
</VirtualHost>
Что ж, Apache должен что-то обслуживать, когда кто-то обращается к нему через https://websiteB.com. Таким образом, он использует имеющийся у него контент с сайта A.
Это подробно объяснено в документации Apache, вот цитата из него:
Apache автоматически распознает на основе заголовка HTTP Host, предоставленного клиентом, всякий раз, когда наиболее точное совпадение для комбинации IP-адреса и порта указано на нескольких виртуальных хостах.
Директива ServerName может появляться в любом месте определения сервера. Однако каждый внешний вид отменяет предыдущий внешний вид (на этом сервере). Если ServerName не указан, сервер пытается определить его по IP-адресу сервера.
Первый виртуальный хост на основе имени в файле конфигурации для данной пары IP: порт важен, потому что он используется для всех запросов, полученных по этому адресу и порту, для которых ни один другой виртуальный хост для этой пары IP: порт не имеет совпадающего ServerName или ServerAlias. Он также используется для всех соединений SSL, если сервер не поддерживает указание имени сервера.
(выделено мной)
Добавьте VirtualHost для веб-сайта B на порт 443 и укажите ему правильный корень документа. Если у вас нет сертификата для него, используйте сертификат с сайта A. Люди, посещающие его, получат предупреждение о недействительном сертификате, но все равно получат это сейчас. По крайней мере, они (и поисковые системы) получают правильный контент, если они решат игнорировать недействительный сертификат.
Но с Let's Encrypt в настоящее время нет абсолютно никаких причин не предоставлять действующий сертификат.
В качестве альтернативы вы можете настроить перенаправление для https: // websiteB запросы к http, но посетители все равно получат предупреждение о сертификате до того, как будут перенаправлены. Как я уже сказал, сертификат Let's Encrypt для веб-сайта B был бы самым простым решением как для управления, так и для ваших посетителей.