Awesome thanks! We'll get this reviewed and then it'll get merged and included 
in 1.2.0. Thanks for the verification assist!

Matt

Sent from my iPhone

> On Dec 15, 2016, at 8:45 PM, Richard St. John <[email protected]> wrote:
> 
> Matt,
> 
> Great news!  I was able to successfully test the changes you made to
> address the import template issue.  I do not know what other verification
> is needed for your PR to be approved, but after building NIFI
> 1.2.0-SNAPSHOT with your changes from NIFI-3207, the issue is resolved.
> 
> Thanks.
> 
> Rick.
> 
>> On Thu, Dec 15, 2016 at 1:43 PM Matt Gilman <[email protected]> wrote:
>> 
>> Rick,
>> 
>> Here's my proposed solution for the template upload issue [1]. Please give
>> it a shot behind your proxy.
>> 
>> Thanks
>> 
>> Matt
>> 
>> [1] https://github.com/apache/nifi/pull/1334
>> 
>> On Thu, Dec 15, 2016 at 12:58 PM, Matt Gilman <[email protected]>
>> wrote:
>> 
>>> Awesome. Here's the JIRA [1]. I should have the PR posted shortly.
>>> 
>>> Matt
>>> 
>>> [1] https://issues.apache.org/jira/browse/NIFI-3207
>>> 
>>> On Thu, Dec 15, 2016 at 12:53 PM, Richard St. John <[email protected]>
>>> wrote:
>>> 
>>>> I should be able to test tonight.
>>>> 
>>>> On Thu, Dec 15, 2016 at 12:45 PM Matt Gilman <[email protected]>
>>>> wrote:
>>>> 
>>>>> Rick,
>>>>> 
>>>>> I think I see what the issue is however, I have don't have the
>>>> environment
>>>>> available for verifying it. If I posted a PR would you be in a
>> position
>>>> to
>>>>> try it out?
>>>>> 
>>>>> Matt
>>>>> 
>>>>> On Wed, Dec 14, 2016 at 9:00 PM, Richard St. John <
>> [email protected]>
>>>>> wrote:
>>>>> 
>>>>>> Matt,
>>>>>> 
>>>>>> This is where it gets interesting.  The issue only arises when nginx
>>>> is
>>>>>> used as a reverse proxy for a *clustered* NiFi (within a trusted
>>>>>> environment using http).  In fact, it even occurs when the reverse
>>>> proxy
>>>>>> upstream points to only one of the nifi nodes in the cluster.
>>>> Moreover,
>>>>>> the problem is limited to importing/uploading a template.  Deleting,
>>>>>> downloading, and instantiating existing templates works fine.
>>>>>> 
>>>>>> There is another strange pattern that I discovered.  I can get
>>>> templates
>>>>> to
>>>>>> import if I hard-code the scheme header as follows:
>> *proxy_set_header
>>>>>> X-ProxyScheme http;*  However, when I hard-code the proxy scheme to
>>>>> http, I
>>>>>> cannot delete a template after it is uploaded.
>>>>>> 
>>>>>> Below are several of the logs (IPs and DNS were changed for security
>>>>>> reasons).
>>>>>> 
>>>>>> *nginx.err*
>>>>>> 2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
>>>>>> buffered to a temporary file
>> /var/cache/nginx/client_temp/0000000005,
>>>>>> client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
>>>>>> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>>>>>> 8a86805ff8bb/templates/upload
>>>>>> HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
>>>>>> https://nifi-rix.somedomain.com/nifi/";
>>>>>> 
>>>>>> *nginx access log*
>>>>>> [15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
>>>>>> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>>>>>> 8a86805ff8bb/templates/upload
>>>>>> HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/";
>> "Mozilla/5.0
>>>>>> (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like
>>>>> Gecko)
>>>>>> Chrome/55.0.2883.95 Safari/537.36" "-"
>>>>>> 
>>>>>> 
>>>>>> *NiFi Log: nifi-app.log*
>>>>>> 2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
>>>>>> o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate
>> request
>>>>> POST
>>>>>> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>>>>>> 8a86805ff8bb/templates/import
>>>>>> to ip-X-X-X-X.ec2.internal:8080 due to {}
>>>>>> com.sun.jersey.api.client.ClientHandlerException:
>>>>>> javax.ws.rs.WebApplicationException:
>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:155)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.Client.handle(Client.java:652)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>> com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource.access$200(WebResource
>>>> .java:74)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource$Builder.post(
>>>>>> WebResource.java:560)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
>>>> stReplicator.
>>>>>> java:587)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator$NodeHttpRequest.run(
>>>>>> ThreadPoolRequestReplicator.java:770)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>> 
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>>>>> [na:1.8.0_112]
>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(
>>>>>> ThreadPoolExecutor.java:1142)
>>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>>>> ThreadPoolExecutor.java:617)
>>>>>> [na:1.8.0_112]
>>>>>> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
>>>>>> Caused by: javax.ws.rs.WebApplicationException:
>>>>>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:159)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
>>>>>> RequestWriter.java:300)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er._invoke(
>>>>>> URLConnectionClientHandler.java:217)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:153)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> ... 11 common frames omitted
>>>>>> Caused by: javax.xml.bind.MarshalException: null
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:325)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
>>>>>> MarshallerImpl.java:249)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
>>>>>> AbstractMarshallerImpl.java:95)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:179)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:157)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> ... 14 common frames omitted
>>>>>> Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
>>>>> plaintext
>>>>>> connection?
>>>>>> at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
>>>> .java:710)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.InputRecord.read(InputRecord.java:527)
>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.security.ssl.SSLSocketImpl.performInitialHandshake(
>>>>>> SSLSocketImpl.java:1375)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1403)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1387)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
>>>> ent.java:559)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
>>>> n.connect(
>>>>>> AbstractDelegateHttpsURLConnection.java:185)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
>>>>>> HttpURLConnection.java:1316)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
>>>>>> HttpURLConnection.java:1291)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
>>>>>> HttpsURLConnectionImpl.java:250)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
>>>>>> 1.getOutputStream(URLConnectionClientHandler.java:238)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.commitStream(
>>>>>> CommittingOutputStream.java:117)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.write(
>>>>>> CommittingOutputStream.java:89)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
>>>>>> UTF8XmlOutput.java:409)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>> com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> writeName(UTF8XmlOutput.java:239)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> beginStartTag(UTF8XmlOutput.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
>>>>>> XMLSerializer.java:327)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
>>>>>> CompositeTransducedAccessorImpl.writeLeafElement(
>>>>>> TransducedAccessor.java:256)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
>>>>>> serializeBody(SingleElementLeafProperty.java:128)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
>>>>>> serializeItem(ArrayElementNodeProperty.java:69)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
>>>>>> serializeListBody(ArrayElementProperty.java:172)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
>>>>>> serializeBody(ArrayERProperty.java:159)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
>>>>>> XMLSerializer.java:597)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
>>>>>> ClassBeanInfoImpl.java:328)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
>>>>>> XMLSerializer.java:498)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:320)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> ... 18 common frames omitted
>>>>>> 2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
>>>>>> o.a.n.c.c.h.r.ThreadPoolRequestReplicator
>>>>>> com.sun.jersey.api.client.ClientHandlerException:
>>>>>> javax.ws.rs.WebApplicationException:
>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:155)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.Client.handle(Client.java:652)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>> com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource.access$200(WebResource
>>>> .java:74)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource$Builder.post(
>>>>>> WebResource.java:560)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
>>>> stReplicator.
>>>>>> java:587)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator$NodeHttpRequest.run(
>>>>>> ThreadPoolRequestReplicator.java:770)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>> 
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>>>>> [na:1.8.0_112]
>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(
>>>>>> ThreadPoolExecutor.java:1142)
>>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>>>> ThreadPoolExecutor.java:617)
>>>>>> [na:1.8.0_112]
>>>>>> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
>>>>>> Caused by: javax.ws.rs.WebApplicationException:
>>>>>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:159)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
>>>>>> RequestWriter.java:300)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er._invoke(
>>>>>> URLConnectionClientHandler.java:217)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:153)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> ... 11 common frames omitted
>>>>>> Caused by: javax.xml.bind.MarshalException: null
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:325)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
>>>>>> MarshallerImpl.java:249)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
>>>>>> AbstractMarshallerImpl.java:95)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:179)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:157)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> ... 14 common frames omitted
>>>>>> Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
>>>>> plaintext
>>>>>> connection?
>>>>>> at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
>>>> .java:710)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.InputRecord.read(InputRecord.java:527)
>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.security.ssl.SSLSocketImpl.performInitialHandshake(
>>>>>> SSLSocketImpl.java:1375)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1403)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1387)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
>>>> ent.java:559)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
>>>> n.connect(
>>>>>> AbstractDelegateHttpsURLConnection.java:185)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
>>>>>> HttpURLConnection.java:1316)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
>>>>>> HttpURLConnection.java:1291)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
>>>>>> HttpsURLConnectionImpl.java:250)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
>>>>>> 1.getOutputStream(URLConnectionClientHandler.java:238)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.commitStream(
>>>>>> CommittingOutputStream.java:117)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.write(
>>>>>> CommittingOutputStream.java:89)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
>>>>>> UTF8XmlOutput.java:409)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>> com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> writeName(UTF8XmlOutput.java:239)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> beginStartTag(UTF8XmlOutput.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
>>>>>> XMLSerializer.java:327)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
>>>>>> CompositeTransducedAccessorImpl.writeLeafElement(
>>>>>> TransducedAccessor.java:256)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
>>>>>> serializeBody(SingleElementLeafProperty.java:128)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
>>>>>> serializeItem(ArrayElementNodeProperty.java:69)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
>>>>>> serializeListBody(ArrayElementProperty.java:172)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
>>>>>> serializeBody(ArrayERProperty.java:159)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
>>>>>> XMLSerializer.java:597)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
>>>>>> ClassBeanInfoImpl.java:328)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
>>>>>> XMLSerializer.java:498)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:320)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> ... 18 common frames omitted
>>>>>> 
>>>>>> Rick.
>>>>>> 
>>>>>> 
>>>>>> On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <
>> [email protected]>
>>>>>> wrote:
>>>>>> 
>>>>>>> Rick,
>>>>>>> 
>>>>>>> The signature of the endpoint that accepts a template upload has
>> not
>>>>>>> changed (other than the path). Are you running a NiFi cluster in
>> the
>>>>>>> trusted environment or is it a standalone instance? Is the issue
>>>> when
>>>>> you
>>>>>>> attempt to upload the template or when you attempt to drop the
>>>> template
>>>>>> on
>>>>>>> your graph? Just wanted to confirm.
>>>>>>> 
>>>>>>> The mixed content error sounds like a client side message when a
>>>>> webpage
>>>>>> is
>>>>>>> referencing resources (img, js, css, etc) from different sources.
>>>> For
>>>>>>> instance, loading a webpage over HTTPS which is referencing a
>>>> resource
>>>>>> over
>>>>>>> HTTP. The frontend resources should all be bundled with the
>>>> application
>>>>>> and
>>>>>>> they should be all loaded through your proxy.
>>>>>>> 
>>>>>>> Are there any other errors or messages? Maybe check the user log
>> on
>>>> the
>>>>>>> NiFi instances. Or maybe the logs of the proxy server to see the
>>>>> requests
>>>>>>> being processed. Hoping there's more details being logged
>> someplace.
>>>>>>> 
>>>>>>> Thanks
>>>>>>> 
>>>>>>> Matt
>>>>>>> 
>>>>>>> On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <
>>>> [email protected]
>>>>>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here
>>>> are
>>>>> the
>>>>>>>> important details. First, nginx is using basic auth and SSL.
>>>> Second,
>>>>>>> NiFi
>>>>>>>> is running in a trusted environment without SSL.  We
>> successfully
>>>>> used
>>>>>>> the
>>>>>>>> same layout for NiFi 0.7.x without issue.  However, starting
>> with
>>>>> 1.0.x
>>>>>>> and
>>>>>>>> continuing in 1.1.x, I cannot import a saved template.  The
>> error
>>>>>>> complains
>>>>>>>> about mixed content (http and https).  Has this layout been
>> tested
>>>>> and
>>>>>>>> validated? If so, what proxy headers am I missing?
>>>>>>>> 
>>>>>>>> Below are the proxy headers I pass from nginx to NiFi:
>>>>>>>>        proxy_set_header X-ProxyScheme $scheme;
>>>>>>>>        proxy_set_header X-ProxyHost $host;
>>>>>>>>        proxy_set_header X-ProxyPort  443;
>>>>>>>>        proxy_set_header X-ProxyContextPath "";
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Thanks Rick.
>>>>>>>> --
>>>>>>>> 
>>>>>>>> ----------------------------
>>>>>>>> Richard St. John, Ph.D.
>>>>>>>> Senior Software Engineer, Applied Mathematician
>>>>>>>> Asymmetrik, Ltd.
>>>>>>>> 
>>>>>>> 
>>>>>> --
>>>>>> 
>>>>>> ----------------------------
>>>>>> Richard St. John, Ph.D.
>>>>>> Senior Software Engineer, Applied Mathematician
>>>>>> Asymmetrik, Ltd.
>>>>>> 
>>>>> 
>>>> --
>>>> 
>>>> ----------------------------
>>>> Richard St. John, Ph.D.
>>>> Senior Software Engineer, Applied Mathematician
>>>> Asymmetrik, Ltd.
>>>> 
>>> 
>>> 
>> 
> -- 
> 
> ----------------------------
> Richard St. John, Ph.D.
> Senior Software Engineer, Applied Mathematician
> Asymmetrik, Ltd.

Reply via email to