akeneo / api-php-client

PHP client of Akeneo PIM API

Home Page:https://packagist.org/packages/akeneo/api-php-client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HTTPS for next page

FelixRijkers opened this issue · 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

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.

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

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

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

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)

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

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.

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 !

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

Could we consider it as resolved and close it?

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