akeneo / api-php-client

PHP client of Akeneo PIM API
https://packagist.org/packages/akeneo/api-php-client
Other
91 stars 56 forks source link

HTTPS for next page #169

Open FelixRijkers opened 5 years ago

FelixRijkers commented 5 years ago

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

soyuka commented 4 years ago

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.

Reiner030 commented 4 years ago

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

frent commented 4 years ago

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...

Reiner030 commented 4 years ago

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

frent commented 4 years ago

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)

ghoussard commented 4 years ago

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

meisterlampe commented 3 years ago

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.

karimennassiri commented 3 years ago

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 !

tschallacka commented 2 years ago

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

jmleroux commented 2 years ago

Could we consider it as resolved and close it?

tschallacka commented 2 years ago

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