api-php-client icon indicating copy to clipboard operation
api-php-client copied to clipboard

HTTPS for next page

Open FelixRijkers opened this issue 5 years ago • 11 comments

Hi there,

I'm connecting trough HTTPS but Akeneo always returns url's with http for example for the next page of results. Any idae how to handle this?

Best Regards

FelixRijkers avatar Aug 27 '19 17:08 FelixRijkers

To get this right you have to configure your trusted proxy (app.php or index.php) there's a comment there. Then, Request->isSecure() should return true.

soyuka avatar Feb 05 '20 16:02 soyuka

Since there was a question in Slack referencing this issue here the solution for further searcher.

If you have a proxy setup commonly they can/should set an additional request header like: X-Forwarded-Proto: https

Which you can use for setting SSL secured mode on Apache vhost which is forwarded to PHP so it could regonize the encrypted connection scheme.

<VirtualHost *:80>
...
        SetEnvIf     X-Forwarded-Proto     https     HTTPS=on
...
</VirtualHost>

Bests

Reiner030 avatar Apr 03 '20 11:04 Reiner030

This is all kinda vague for me and not really straight forward to implement.

Why not have an easy setting for Akeneo to use SSL or not SSL. Or even better when you request a page in Akeneo API you send the pagining back in the same method as the request - http or https...

frent avatar Apr 06 '20 10:04 frent

I have no clue if there is a direct configuration setting in Akeneo. My view is as "system administrator" which have to get and stay it running.

Thats the point you should consider yourself for next round which maybe someone else then could respond to if interested:

Why not have an easy setting for Akeneo to use SSL or not SSL.

I offered this switch in Apache config by setting right variable to on (it's automatically set by mod_ssl which is in this case isn't used): SetEnvIf X-Forwarded-Proto https HTTPS=on

If you are lazy or unwillingly to set it conditionally then change it to SetEnv HTTPS on

Or even better when you request a page in Akeneo API you send the pagining back in the same method as the request - http or https...

HOW show Akeneo know about it e.g. if there is Apache http running behind an HAproxy offering SSL termination? => Solution: my vhost / SetEnvIf example

Reiner030 avatar Apr 06 '20 12:04 Reiner030

I am still confused about all this. I tried the suggestions you gave but it did not give me a sollution. And if I look at the original question I'm not alone with this problem.

If I try the same request (no http) with https://reqbin.com/ then it follows the redirect to https and returns the data.

For some reason the "GuzzleHttp\Psr7\Request" does not follow this redirect, although in there documentation it says it would. (http://docs.guzzlephp.org/en/stable/quickstart.html#redirects)

frent avatar Apr 17 '20 11:04 frent

Since there was a question in Slack referencing this issue here the solution for further searcher.

If you have a proxy setup commonly they can/should set an additional request header like: X-Forwarded-Proto: https

Which you can use for setting SSL secured mode on Apache vhost which is forwarded to PHP so it could regonize the encrypted connection scheme.

<VirtualHost *:80>
...
        SetEnvIf     X-Forwarded-Proto     https     HTTPS=on
...
</VirtualHost>

Bests

Works for me. Thanks! Running PIM CE in docker container behind a Traefik reverse proxy

ghoussard avatar Jun 04 '20 13:06 ghoussard

Since there was a question in Slack referencing this issue here the solution for further searcher.

If you have a proxy setup commonly they can/should set an additional request header like: X-Forwarded-Proto: https

Which you can use for setting SSL secured mode on Apache vhost which is forwarded to PHP so it could regonize the encrypted connection scheme.

<VirtualHost *:80>
...
        SetEnvIf     X-Forwarded-Proto     https     HTTPS=on
...
</VirtualHost>

Bests

Also works for me using nginx as reverse proxy. Thanks. To my mind, this is the right way to solve this problem when working with reverse proxies.

meisterlampe avatar Apr 21 '21 11:04 meisterlampe

Since there was a question in Slack referencing this issue here the solution for further searcher. If you have a proxy setup commonly they can/should set an additional request header like: X-Forwarded-Proto: https Which you can use for setting SSL secured mode on Apache vhost which is forwarded to PHP so it could regonize the encrypted connection scheme.

<VirtualHost *:80>
...
        SetEnvIf     X-Forwarded-Proto     https     HTTPS=on
...
</VirtualHost>

Bests

Also works for me using nginx as reverse proxy. Thanks. To my mind, this is the right way to solve this problem when working with reverse proxies.

Can you please put here what you've done in Nginx please !

karimennassiri avatar Jul 05 '21 21:07 karimennassiri

I simply added HTTPS=On to the .env file and it works like a charm. No need to mess with the proxy config.

tschallacka avatar Jan 11 '22 13:01 tschallacka

Could we consider it as resolved and close it?

jmleroux avatar Jan 12 '22 08:01 jmleroux

I would suggest adding the https=on in the .env to the documentation for use in proxied servers asa solution

tschallacka avatar Jan 12 '22 08:01 tschallacka