У меня есть Mac Mini Server, работающий под управлением macOS Sierra (10.12.2) с macOS Server (5.2). Он поставляется со встроенным сервером Apache, который настроен на прослушивание портов 80 и 443. Это прекрасно работает; документы доступны как по HTTP, так и по HTTPS.
Однако как только я использую SSLRequireSSL
в файле .htaccess, он перестает работать. В браузере при доступе https://www.example.com/path/document
, Вижу следующее:
Запрещено
У вас нет разрешения на доступ к / path / document на этом сервере.
Сервер Apache на www.example.com Порт 80
Обратите внимание, что в сообщении об ошибке упоминается порт 80, хотя он обслуживается через HTTPS / порт 443 (я проверил это с помощью curl, поэтому перенаправления браузера здесь не проблема). Но это мог быть связанным с источником проблемы.
В журнале ошибок Apache отображается следующее:
[Вс, 29 января, 16:38: 07.674342 2017] [ssl: error] [pid 82204] [client 127.0.0.1:50195] AH02219: сбой доступа к / Users / Glorfindel / wwwroot / path / document, причина: требуется SSL-соединение
Другие директивы в файле .htaccess работают (например, Options -Indexes
).
У вас нет доступа к https.
Отображаемая вами ошибка четко говорит: «Сервер Apache на www.example.com, порт 80».
Убедитесь, что вы действительно получаете доступ к https, убедитесь, что нет перенаправлений, которые отправляют вас на http (например, с помощью веб-консоли вашего браузера).
Основываясь на ваших комментариях, вот подсказка, чтобы увидеть, что происходит:
curl -I https://www.example.com/path/document
Это покажет вам некэшированный ответ с вашего сервера, если у вас есть доступ или нет, и / или если вы получаете перенаправление на http.