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

HTTPS больше не работает после добавления директивы SSLRequireSSL

У меня есть 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.