перенаправить https://www на https://no -www web config Ваше соединение не защищено - PullRequest
0 голосов
/ 30 августа 2018

У меня есть этот код, он отлично работает

<rule name="Force non-WWW" enabled="true" stopProcessing="true">
 <match url="(.*)" />
 <conditions logicalGrouping="MatchAny">
 <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
 </conditions>
 <action type="Redirect" url="https://{C:2}/{R:1}" appendQueryString="true" />
</rule>
<rule name="Force HTTPS" enabled="true" stopProcessing="true">
 <match url="(.*)" />
 <conditions logicalGrouping="MatchAny">
 <add input="{HTTPS}" pattern="off" />
 </conditions>
 <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" />
</rule>

Я купил сертификат SSL для одного домена https://example.com

если пользователь вводит доменное имя с https://www.exmple.com

Он получил эту ошибку Ваше соединение не защищено

сайт не может быть перенаправлен на https://example.com и остается в этой ошибке. но для систем другого типа, таких как www.example.com или example.com, код работает хорошо

как я могу перенаправить до этой ошибки

возможно, мне нужен этот код, но в web.config я не знаю, как писать в web.config

# BEGIN SSL
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?replace-with-your-URL\.com$ [NC]
RewriteRule ^$ https://replace-with-your-URL.com$1 [R,L]
# END SSL 

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Рукопожатие SSL / TLS происходит раньше, чем перезапись URL, что, к сожалению, многие игнорируют.

Вы должны предоставить веб-браузеру действительные сертификаты как для www.site.com, так и для site.com. В противном случае веб-браузер выдаст предупреждение, если не обнаружит действительный сертификат.

Либо сертификат SAN с несколькими именами хостов, либо два сертификата с соответствующими сопоставлениями SNI должны работать для вас, в зависимости от вашего бюджета. С бесплатными сертификатами (SAN или нет) от Let's Encrypt редко бы приходилось покупать сертификат (если вы не ведете бизнес с более высокими требованиями).

0 голосов
/ 30 августа 2018

Правила работают с example.com и www.example.com из-за порядка следования правил - удалите www, затем перенаправьте на https://, чтобы оно было перенаправлено на https://example.com

Чтобы проверить это, измените порядок правил и перейдите на www.example.com, и вы получите сообщение Your conection is not secure.

Это правило всегда будет работать с незашифрованным HTTP.

SAN only example.com вызывает проблему при использовании https://www.example.com, потому что первое правило никогда не выполняется, потому что браузер не допустит изменения, так как сертификат не соответствует имени сервера.

Если вы можете получить сертификат с несколькими именами, то добавьте www.example.com или, что еще лучше, получите подстановочный знак *.example.com - тогда все будет выполняться по правилу strip www.

У вас не может быть правила, которое работает, когда URL-адрес уже зашифрован, если только имя сервера не соответствует сертификату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...