У меня есть конфигурация apache с обратным прокси (IP этого сервера: 192.168.1.82
) для обработки моего нового сервера D9:
192.168.1.82 : 443 передается на 192.168.1.87 как HTTP(80)
<VirtualHost *:443>
ServerName www.mydomain.be
ServerAlias mydomain.be
NameVirtualHost www.mydomain.be
ProxyPreserveHost On
ProxyPass / http://192.168.1.87:80/
ProxyPassReverse / http://192.168.1.87/
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyVerify none
...
</VirtualHost>
Я думаю, что это называется терминацией SSL
192.168.1.82 : 80 перенаправляется как https (443)
<VirtualHost *:80>
ServerName www.mydomain.be
Redirect permanent / https://www.mydomain.be/
</VirtualHost>
192.168.1.87 : настройки.php
$settings['reverse_proxy'] = ИСТИНА;
$settings['reverse_proxy_addresses'] = [
'192.168.1.82',
];
$_SERVER['HTTPS'] = 'включено';
$settings['ssl'] = ИСТИНА;
К сожалению, функция автозаполнения поля ссылки на объект запрашивает конечную точку без HTTPS (незащищенную) (смешанное содержимое):
http://www.mydomain.be/fr/entity_reference_autocomplete/node/default:node/3veI...I?q=t
Что я могу сделать, чтобы заставить https... Я приму самый уродливый хак, если он работает (да, я здесь)
Тест 1: ProxyPass https вместо http [не будет работать, см. ниже]
Я адаптировал 82 виртуальных хоста следующим образом:
SSLProxyEngine включен
ПроксиПасс / https://192.168.1.87/
ПроксиПассРеверс / https://192.168.1.87/
=> На этот раз у меня нет проблемы со смешанным содержимым, но у меня есть ERR_TOO_MANY_REDIRECTS
снова для этой конечной точки автозаполнения сущности
Тест 2: взломать Symfony\Component\HttpFoundation\Request::isSecure()
Вот моя новая функция isSecure():
публичная функция isSecure(){
вернуть ИСТИНА;
}
Сделав это, URL-адрес автозаполнения использует https, но на этот раз я получил ERR_TOO_MANY_REDIRECTS
ПОЛУЧИТЬ https://www.mydomain.be/fr/entity_reference_autocomplete/node/default%3Anode/3ve...I?q=T net::ERR_TOO_MANY_REDIRECTS
Я действительно понятия не имею, откуда это может прийти