Назад | Перейти на главную страницу

Браузер не запрашивает учетные данные для входа при первой попытке

У меня есть сайт, настроенный с доменным именем, зарегистрированным в GoDaddy, и размещенный на капле Apache Digital Ocean, с серверами имен GoDaddy, указывающими на серверы имен DigitalOcean. Весь сайт находится за логином / паролем htaccess.

Моя проблема в том, что в некоторых браузерах (Safari OS X), если вы перейдете в mydomain.com без www, когда вы впервые получаете это сообщение без запроса учетных данных:

Неавторизованный

Этот сервер не смог подтвердить, что у вас есть доступ к запрошенному документу. Либо вы ввели неправильные учетные данные (например, неверный пароль), либо ваш браузер не понимает, как предоставить необходимые учетные данные.

Сервер Apache / 2.4.29 (Ubuntu) на порт 80 www.mydomain.com

В второй когда вы пробуете ссылку, она предлагает пользователю войти в систему.

Мне нужен пользователь с авторизованными кредитами первый время, когда пользователь переходит mydomain.com, а не только при последовательных попытках.

Мои записи DNS в DigitalOcean выглядят так:

Www.mydomain.com направляет на 206.189.65.999 3600

NS mydomain.com направляет на ns3.digitalocean.com. 1800

NS mydomain.com направляет на ns2.digitalocean.com. 1800

NS mydomain.com направляет на ns1.digitalocean.com. 1800

У меня нет большого опыта настройки этого, поэтому я предполагаю, что мои записи DNS неверны, но может ли это быть просто причудой Safari?

Наверное, это: https://discussions.apple.com/thread/8232508

Если соединение установлено только по протоколу http (а не по SSL), то обновленная версия Safari не будет запрашивать базовую аутентификацию. Даже если он попадает в SSL, но проходит не-SSL-ссылку между ними, которая перенаправляется на https.

Это изменилось в iOS 11.2 и macOS 10.13.2 Safari.

Итак, вам нужно будет использовать ссылку, которая ведет непосредственно на https и не перенаправляет на что-то http, а затем снова на https.

Что может помочь, так это отправить заголовок HSTS на виртуальных хостах, настроенных для SSL. Тогда, по крайней мере, браузер будет напрямую использовать SSL в любом следующем экземпляре, просто набрав этот домен в адресной строке.