Администрирование
Расширенные настройки
Терминация SSL
4мин
начиная с версии 7, фронтенд пассворка требует обязательного использования https, поэтому все стандартные установки и конфигурации включают соответствующие настройки тем не менее, мы понимаем, что во многих инфраструктурах используется ssl терминация обратить внимание! эти настройки необходимы в следующих случаях в инфраструктуре обязательна ssl терминация; используется экземпляр пассворка в контролируемой зоне docker сборка пассворка пример server { 	 listen 80; 	 server name ; 	 root /server/www/public; 	 index index html; 	 charset utf 8; 	 client max body size 100m; 	 fastcgi read timeout 1800; 	 location ^/ well known/acme challenge/ { 	 access log /server/log/nginx/certbot log; 	 root /var/www/certbot; 	 } 	 location = /favicon ico { 	 access log off; log not found off; 	 } 	 location = /robots txt { 	 access log off; log not found off; 	 } 	 location /\\ { 	 deny all; 	 } 	 location / { 	 include /server/nginx/extra/security headers conf; 	 include /server/nginx/extra/cors conf; 	 if ($request method = 'options') { 	 return 204; 	 } 	 include /server/nginx/extra/csp conf; 	 try files $uri /index html; 	 } 	 location ^/api(/|$) { 	 include /server/nginx/extra/security headers conf; 	 include /server/nginx/extra/cors conf; 	 if ($request method = 'options') { 	 return 204; 	 } 	 fastcgi pass phpfpm; 	 fastcgi param script filename /server/www/public/index php; 	 fastcgi param https on; 	 fastcgi param server port 443; 	 fastcgi param http x forwarded proto https; 	 fastcgi param http x forwarded port 443; 	 include /etc/nginx/fastcgi params; 	 } 	 location \\ (js|css|png|jpg|jpeg|gif|ico|woff|woff2|ttf|svg)$ { 	 expires 6m; 	 log not found off; 	 access log off; 	 add header cache control "public, max age=2592000"; 	 } 	 location ^/index\\ php(/|$) { 	 try files $uri =404; 	 fastcgi pass phpfpm; 	 fastcgi index /index php; 	 include /etc/nginx/fastcgi params; 	 fastcgi split path info ^( +\\ php)(/ +)$; 	 fastcgi param document root $realpath root; 	 fastcgi param path info $fastcgi path info; 	 fastcgi param script filename $realpath root$fastcgi script name; 	 fastcgi param https on; 	 fastcgi param server port 443; 	 fastcgi param http x forwarded proto https; 	 fastcgi param http x forwarded port 443; 	 add header cache control "no store, max age=0" always; 	 } 	} } если используется стандартная установка в docker и в качестве портов после терминации применяются 80 и 443, необходимо выполнить следующее shell cd /\<passwork>/ # перейти в корневое расположение docker сборки cp /conf/nginx/extra/flex example /conf/nginx/nginx conf docker compose down && docker compose up d listen 80 — nginx слушает порт 80 если после терминации трафик перенаправляется на другой порт, заменить 80 порт на необходимый fastcgi param https on; — указать бэкенду, что соединение считается защищённым это важно для правильного определения схемы запроса при использовании sso fastcgi param server port 443; — установить ожидаемый порт для защищённого соединения если используется нестандартный порт для ssl в sso, изменить 443 порт на необходимое значение fastcgi param http x forwarded proto https; — передать информацию о том, что исходное соединение от клиента шло по https, даже если ssl был терминирован fastcgi param http x forwarded port 443; — аналогично http x forwarded proto , сообщает приложению, что исходный порт клиента был 443 если используется нестандартный порт для ssl в sso, изменить 443 порт на необходимое значение ручная установка пассворка (apache2\httpd) если используется установка в linux за ssl терминатором, необходимо использовать пример для корректной настройки пассворка пример \<virtualhost 80> servername example passwork ru serveradmin webmaster\@localhost documentroot /var/www/public \<directory /var/www/public> options indexes +followsymlinks +multiviews allowoverride all require all granted \</directory> errorlog ${apache log dir}/error log customlog ${apache log dir}/access log combined \<filesmatch \\ php$> sethandler "proxy\ unix /run/php/php8 3 fpm sock|fcgi //localhost/" proxyfcgisetenvif "true" https on proxyfcgisetenvif "true" server port 443 proxyfcgisetenvif "true" http x forwarded proto https proxyfcgisetenvif "true" http x forwarded port 443 \</filesmatch> \</virtualhost> proxyfcgisetenvif "true" https on — принудительно установить переменную окружения https=on для каждого запроса через fastcgi используется для имитации защищённого соединения, если ssl терминируется на внешнем прокси proxyfcgisetenvif "true" server port 443 — установить ожидаемый порт для защищённого соединения если используется нестандартный порт для ssl в sso, изменить 443 порт на необходимое значение proxyfcgisetenvif "true" http x forwarded proto https — добавляет заголовок http x forwarded proto=https в окружение fastcgi это позволяет бэкенду пассворка корректно определить исходную схему подключения клиента через прокси proxyfcgisetenvif "true" http x forwarded port 443 — аналогично http x forwarded proto , сообщает приложению, что исходный порт клиента был 443 если используется нестандартный порт для ssl в sso, изменить 443 порт на необходимое значение