Puedes forzar áreas de tu sitio para que utilicen el protocolo HTTPS en la configuración de seguridad. Esto se hace a través de las reglas access_control usando la opción requires_channel. Por ejemplo, si deseas forzar que todas las URL que empiecen con /secure usen HTTPS podrías utilizar la siguiente configuración:
access_control:
- path: ^/secure
roles: ROLE_ADMIN
requires_channel: https
<access-control>
<rule path="^/secure" role="ROLE_ADMIN" requires_channel="https" />
</access-control>
'access_control' => array(
array(
'path' => '^/secure',
'role' => 'ROLE_ADMIN',
'requires_channel' => 'https',
),
),
El formulario de acceso necesita permitir acceso anónimo, de lo contrario los usuarios serán incapaces de autenticarse. Para forzarlo a usar HTTPS puedes utilizar reglas access_control usando el rol IS_AUTHENTICATED_ANONYMOUSLY:
access_control:
- path: ^/login
roles: IS_AUTHENTICATED_ANONYMOUSLY
requires_channel: https
<access-control>
<rule path="^/login"
role="IS_AUTHENTICATED_ANONYMOUSLY"
requires_channel="https" />
</access-control>
'access_control' => array(
array(
'path' => '^/login',
'role' => 'IS_AUTHENTICATED_ANONYMOUSLY',
'requires_channel' => 'https',
),
),
También es posible especificar el uso de HTTPS en la configuración de enrutado consulta Cómo forzar las rutas para que siempre usen HTTPS o HTTP para más detalles.