<div dir="ltr">For Keycloak server to work behind a reverse proxy you need to make sure the X-Forwarded-For and Host headers are includes, there&#39;s also some config you need to do in Keycloak itself. See <a href="http://keycloak.github.io/docs/userguide/keycloak-server/html/server-installation.html#proxy-address-forwarding">http://keycloak.github.io/docs/userguide/keycloak-server/html/server-installation.html#proxy-address-forwarding</a></div><div class="gmail_extra"><br><div class="gmail_quote">On 24 May 2016 at 13:34, Guy Bowdler <span dir="ltr">&lt;<a href="mailto:guybowdler@dorsetnetworks.com" target="_blank">guybowdler@dorsetnetworks.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Typical, spent two days faffing on this and as soon as I ask the forum,<br>
I find it.   I repointed the kc proxy &quot;auth-server-url&quot; direct at<br>
keycloak and it works fine.  Point it at the nginx proxied version of<br>
keycloak and it dies.   It authenticates, and the user sessions show in<br>
the keycloak console, and SSO works, as I can go to another URL and that<br>
too shows a session but neither page renders when keyclaok is behind<br>
nginx.<br>
<br>
anyone had a similar experience?<br>
<div class="HOEnZb"><div class="h5"><br>
On 2016-05-24 11:25, Guy Bowdler wrote:<br>
&gt; It might be this, as we have the keycloak instance running behind<br>
&gt; another nginx proxy:<br>
&gt;<br>
&gt; <a href="https://issues.jboss.org/browse/KEYCLOAK-2054" rel="noreferrer" target="_blank">https://issues.jboss.org/browse/KEYCLOAK-2054</a><br>
&gt;<br>
&gt; If anyone can help confirm this is would be a massive help as the fix<br>
&gt; isn&#39;t due out until June 22 and would save unnecessary troubleshooting<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On 2016-05-24 10:48, Guy Bowdler wrote:<br>
&gt;&gt; Hi:)<br>
&gt;&gt;<br>
&gt;&gt; Has anybody seen this error?<br>
&gt;&gt;<br>
&gt;&gt; I have  (<a href="http://host.name/appname" rel="noreferrer" target="_blank">http://host.name/appname</a>) --&gt; [KeyCloakProxy:80 --&gt;<br>
&gt;&gt; nginx:8080]<br>
&gt;&gt;   --&gt;  [Web apps on different boxes] where [] denotes on same box.<br>
&gt;&gt; Namespace is hostname/appname where nginx location directives proxy<br>
&gt;&gt; out<br>
&gt;&gt; again to different boxes.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ve previously had this working but when I changed the keystore it<br>
&gt;&gt; all<br>
&gt;&gt; broke and haven&#39;t found the problem yet.  Troubleshooting steps have<br>
&gt;&gt; been to take out the ssl entirely and try different client settings.<br>
&gt;&gt; If<br>
&gt;&gt; I remove the contraints in the proxy config, it proxies ok to the<br>
&gt;&gt; webpages, and it the constraints are in, I log in ok and then the<br>
&gt;&gt; browser goes blank with a URL like this in the address bar:<br>
&gt;&gt;<br>
&gt;&gt; <a href="http://apps.host.name/python?state=0%2F52043b01-976f-464f-8651-ebe295aac2af&amp;code=-_odSdHkDVnID6JhPeKV2QXh_1oub5DDLP2ZLZ6pA_0.ef2bd934-2fd8-48da-a626-106712b687b1" rel="noreferrer" target="_blank">http://apps.host.name/python?state=0%2F52043b01-976f-464f-8651-ebe295aac2af&amp;code=-_odSdHkDVnID6JhPeKV2QXh_1oub5DDLP2ZLZ6pA_0.ef2bd934-2fd8-48da-a626-106712b687b1</a><br>
&gt;&gt;<br>
&gt;&gt; The error stack below is from the console of the keycloak proxy.<br>
&gt;&gt; Refreshing the page, simply returns a different error of &quot;NO STATE<br>
&gt;&gt; COOKIE&quot;.<br>
&gt;&gt;<br>
&gt;&gt; Thanks in advance for any assistance,<br>
&gt;&gt;<br>
&gt;&gt; kind regards<br>
&gt;&gt;<br>
&gt;&gt; Guy<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ERROR: failed to turn code into token<br>
&gt;&gt; java.net.ConnectException: Connection refused<br>
&gt;&gt;          at java.net.PlainSocketImpl.socketConnect(Native Method)<br>
&gt;&gt;          at<br>
&gt;&gt; java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)<br>
&gt;&gt;          at<br>
&gt;&gt; java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)<br>
&gt;&gt;          at<br>
&gt;&gt; java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)<br>
&gt;&gt;          at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)<br>
&gt;&gt;          at java.net.Socket.connect(Socket.java:589)<br>
&gt;&gt;          at<br>
&gt;&gt; sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:532)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.SniSSLSocketFactory.connectSocket(SniSSLSocketFactory.java:109)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:409)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)<br>
&gt;&gt;          at<br>
&gt;&gt; org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.ServerRequest.invokeAccessCodeToToken(ServerRequest.java:107)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.OAuthRequestAuthenticator.resolveCode(OAuthRequestAuthenticator.java:314)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.OAuthRequestAuthenticator.authenticate(OAuthRequestAuthenticator.java:260)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.RequestAuthenticator.authenticate(RequestAuthenticator.java:112)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.undertow.AbstractUndertowKeycloakAuthMech.keycloakAuthenticate(AbstractUndertowKeycloakAuthMech.java:110)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.undertow.UndertowAuthenticationMechanism.authenticate(UndertowAuthenticationMechanism.java:56)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:233)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:250)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.impl.SecurityContextImpl$AuthAttempter.access$100(SecurityContextImpl.java:219)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.impl.SecurityContextImpl.attemptAuthentication(SecurityContextImpl.java:121)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.impl.SecurityContextImpl.authTransition(SecurityContextImpl.java:96)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.impl.SecurityContextImpl.authenticate(SecurityContextImpl.java:89)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.proxy.ProxyAuthenticationCallHandler.handleRequest(ProxyAuthenticationCallHandler.java:44)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.proxy.ConstraintMatcherHandler.handleRequest(ConstraintMatcherHandler.java:89)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)<br>
&gt;&gt;          at<br>
&gt;&gt; org.keycloak.adapters.undertow.UndertowPreAuthActionsHandler.handleRequest(UndertowPreAuthActionsHandler.java:54)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.server.session.SessionAttachmentHandler.handleRequest(SessionAttachmentHandler.java:68)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.server.handlers.PathHandler.handleRequest(PathHandler.java:94)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:232)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:130)<br>
&gt;&gt;          at<br>
&gt;&gt; io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:56)<br>
&gt;&gt;          at<br>
&gt;&gt; org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)<br>
&gt;&gt;          at<br>
&gt;&gt; org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)<br>
&gt;&gt;          at<br>
&gt;&gt; org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:88)<br>
&gt;&gt;          at org.xnio.nio.WorkerThread.run(WorkerThread.java:559)<br>
&gt;&gt;<br>
&gt;&gt; May 24, 2016 11:04:30 AM<br>
&gt;&gt; org.keycloak.adapters.OAuthRequestAuthenticator<br>
&gt;&gt; checkStateCookie<br>
&gt;&gt; WARN: No state cookie<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; keycloak-user mailing list<br>
&gt;&gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
&gt; _______________________________________________<br>
&gt; keycloak-user mailing list<br>
&gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
_______________________________________________<br>
keycloak-user mailing list<br>
<a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
</div></div></blockquote></div><br></div>