Мне понадобится выделенный IP-адрес и SSL для веб-сайта. Я заметил, что SSL будет работать как для www, так и для канонического имени, но не для обоих.
Значит ли это, что выделенный IP-адрес будет установлен только для одного из них?
Если я установлю SSL для www, тогда, если пользователь перейдет по URL-адресу вручную без www, будет отображаться недействительный сертификат - как мне обойти это? mod_rewrite в htaccess?
ЕСЛИ мне нужен SSL для поддомена, это еще один сертификат SSL и выделенный IP-адрес для покупки?
Лучшим вариантом является использование поставщика SSL, который включит базовый домен в качестве бесплатного альтернативного имени субъекта в ваш сертификат. Такие центры сертификации, как GoDaddy, Comodo, DigiCert и GlobalSign, делают следующее: http://www.sslshopper.com/ssl-certificate-comparison.html?ids=17,44,66,37
Тогда вы не получите никаких ошибок, но все же рекомендуется перенаправление на стандартное имя (с www или без него).
Существует два разных типа сертификатов SSL: один с подстановочными знаками, а другой - для домена. Большинство используют последнее, так как оно дешевле.
Да, вы можете создавать перенаправления в htaccess, чтобы идти туда, куда вам нужно. DNS также может помочь в этом.
Если он вам нужен для поддоменов, проверьте сертификат SSL с подстановочными знаками. Это единственный способ получить все субдомены без покупки отдельных сертификатов.
Сначала ответим на последний вопрос.
Есть такая штука, которая называется SSL-сертификатом с подстановочными знаками. Это означает, что все поддомены покрываются сертификатом. например * .mydomain.com
Если вы купите один из них, который может быть в 5-10 раз дороже, вы решите и первую проблему.
Если вы все же придерживаетесь обычного SSL-сертификата, я бы посоветовал переписать его на один из типов домена .. либо с www, либо без него. Как правило, вы всегда должны это делать. Решите, какой из них вы предпочитаете (я всегда предпочитаю без), и создайте правило mod_rewrite, которое перенаправляет 301 (перенаправление перенаправления)
вот как это можно сделать:
В соответствующем файле конфигурации apache для этого домена:
ServerAdmin info@example.com ServerName www.example.com ServerAlias example.com
. . .
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
Нет строгого требования, чтобы обратный DNS разрешал имя хоста веб-сайта. Существует только требование, чтобы имя хоста в сертификате SSL разрешалось в IP-адрес хоста, который обслуживает сайт (и что нет других сайтов SSL на том же IP, если все они не могут использовать сертификат с подстановочными знаками) в качестве сертификата отправляется до обмена любым протоколом HTTP.
Я считаю, что Apache может обрабатывать согласование имени хоста даже при использовании SSL, поэтому вы можете отправить HTTP 301 Moved Permanently, чтобы перенаправить пользователя на канонический URL-адрес.
Подстановочные сертификаты. Они заметно дороже, но позволяют иметь один и тот же сертификат для нескольких сайтов.