SSL и Modx

Всем привет! Есть установленный сертификат, в админке https работает (но, например делает не рабочим плагин Code Mirror из-за ошибов типа:
Mixed Content: The page at 'https://site/manager/' was loaded over HTTPS, but requested an insecure stylesheet 'http://site/assets/plugins/codemirror/cm/lib/codemirror.css'. This request has been blocked; the content must be served over HTTPS.

На самом сайте https не работает, site_url читает без http

В настройках тип сервера стоит https

В консоли сайта выдает кучу сообщений типа:

Mixed Content: The page at 'https://site-name/' was loaded over HTTPS, but requested an insecure image 'http://site-name/img/logo.png'. This content should also be served over HTTPS.

Если принудительно в base href задать адрес сайта с , то ошибок в консоли нет, но и SSL как будто бы и нет

Как сделать, чтобы codemirror работал в админке и чтобы https было и на страницах сайта?

15 комментариев

avatar
а в .htaccess настроить редирект http >> https пробовали?
avatar
Мне как раз это и помогло.
Там был еще прикол без редиректа, работал в админке 1-2 минуты и меня снова на авторизацию выкидывало. Сделал редирект и забыл о проблемах))
avatar
Не помогает
avatar
Если на сервере связка Apache + NGINX, то поможет в начале .htaccess добавить:

<IfModule setenvif_module>
    SetEnvIf X-Forwarded-Proto https HTTPS=on
</IfModule>


Буквально вчера такую же проблему решил.
Комментарий отредактирован 2017-02-06 09:55:09 пользователем a-sharapov
avatar
На самом сайте проблем нет, в админке https тоже пашет. Но из-за этого не работает модуль Extras, CodeMirror, Manager Manager, т.к. они выдают урлы http://

и [(site_url)] выдает http
avatar
На 1.7.6 — все, кроме экстрас работает, в том числе CodeMirror, Manager Manager. А вместо [(site_url)] давно рекомендовал использовать сниппет [!site_url!] в одну строчку
return MODX_SITE_URL;

Он нормально возвращает и https и разные домены для разных доменов одного и того же сайта :)
avatar
Ок, а что делать с админкой? Версия 1.2.1-d 9.1.0

До этого 7.1.6 стояла, но там тоже ничего не работало.

$modx->config['site_url']


Упорно выдает адрес с http://
avatar
А мой вариант с .htaccess тоже не помог?
avatar
Нет, помогло в итоге добавление в config.inc.php такого кода на 74-ой строчке:
$site_url = 'https://sitename.ru/';
Вместо sitename.ru свой адрес

Все заработало в админке как надо, но с Extras все равно ничего не ставится
avatar
Как я ни крутил htaccess, настроить в нём вместе редирект www -> без www + http -> https не получилось, постоянно цикл или редиректило на ?q=…
Приходится делать так:
1. В админке переключаем на https.
2. В config.php заменяем строку выбора между http\https на 'https' жёстко.
3. Пишем сниппет, проверяем заголовок и редиректим на нужный протокол.

Или киньте весь вариант .htaccess вместе с редиректом www -> без www + http -> https
avatar
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://site.name/$1 [R,L]

# without www  all domian
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]


Заменить site.name на свой. Ни разу проблем не видел.
avatar
На хостинге sweb такая конструкция не работает. Циклит.
avatar
А чего ей циклить? Может это на самом хостинге какой-то косяк с сертификатом https? :)

Вот их рекомендации для MODx, видимо у них проблемы с $_SERVER['HTTPS'] или не тот порт (443) для https или еще чего. Так что только в htaccess вряд ли с ними что-то получится сделать :)
Комментарий отредактирован 2017-02-10 12:08:18 пользователем webber
avatar
Тоже много времени потратил, чтобы сделать редирект.
В итоге получилось так:
1. Включаем в админке https
2. В htaccess вставил рабочий редирект на https из manager/.htaccess (админку почему-то корректно редиректит)

RewriteCond %{HTTPS} off
RewriteRule (.*) %{HTTP_HOST}%{REQUEST_URI} [R=301,L]
avatar
Вот я делал одношаговый редирект сразу для всех нужных «направлений»:
http      >> https
www.http  >> https
www.https >> https

для связки Apache + Nginx на хостинге Джино.

Всё работает, админка работает (комментарии в самом файле .htaccess)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.