You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/09/07 12:38:00 UTC

[jira] [Commented] (CAMEL-24632) SSLException when GET/POST to https endpoint with proxy setting using camel-http component

    [ https://issues.apache.org/jira/browse/CAMEL-24632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18112330#comment-18112330 ] 

Claus Ibsen commented on CAMEL-24632:
-------------------------------------

Yes set the scheme to what you need to use

> SSLException when GET/POST to https endpoint with proxy setting using camel-http component
> ------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24632
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24632
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-http
>    Affects Versions: 4.18.4
>            Reporter: Xilai Dai
>            Priority: Minor
>
> With camel-http component calling a https endpoint with proxy setting:
> {code:java}
> from("timer:Timer_1?repeatCount=1).to("https://www.google.com/?proxyHost=yourProxyserver&proxyPort=yourProxyport"){code}
> It will end up with SSLException unexpectedly.
> {code:java}
> javax.net.ssl.SSLException: Unsupported or unrecognized SSL message	at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:462)	at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175)	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111)	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505)	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420)	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)	at org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory.executeHandshake(SSLConnectionSocketFactory.java:303)	at org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:275)	at org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:251)	at org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:181)	at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:447)	at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:162)	at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:172)	at org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:146)	at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)	at org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:192)	at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)	at org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:96)	at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)	at org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:152)	at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)	at org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:170)	at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:87)	at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:55)	at org.apache.hc.client5.http.classic.HttpClient.executeOpen(HttpClient.java:183)	at org.apache.camel.component.http.HttpProducer.executeMethod(HttpProducer.java:485)	at org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:247) {code}
> *Root cause:*
> There was a buddy method configureHttpProxy() in camel-http component (issue existing on camel main branch)
> [https://github.com/apache/camel/blob/main/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java#L380-L421] 
> "secure" here means "is the target endpoint https", that value is then used to decide the scheme (http or https) for connecting to the proxy itself — which is a completely different, unrelated thing.
> *Workaround:*
> proxyAuthScheme=http must be set explicitly when the target endpoint in camel-http URI is https — otherwise Camel silently misconfigures the proxy connection scheme.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)