Rob, just as a folowup. I added all the properties to the command line and
everything works as expected. Not sure what was going on. Thanks for your
help.

On Thu, Feb 5, 2015 at 2:13 PM, Trevor Donaldson <[email protected]>
wrote:

> Rob, so even if I setup all of the javax.net.ssl.keystore etc...
> properties, they don't apply to the Http call?
>
> On Wed, Feb 4, 2015 at 1:54 PM, Trevor Donaldson <[email protected]>
> wrote:
>
>> I imported the certificate plus I loaded all the system properties. I am
>> not sure if it has something to do with how
>> DatasetAccessorFactory.createHttp works, specifically how, the Http
>> connection is made.
>>
>> On Wed, Feb 4, 2015 at 1:33 PM, Trevor Donaldson <[email protected]>
>> wrote:
>>
>>> no the keystore approach did not work for me. I am not sure why it
>>> didn't work. It is only causing a problem with Java App->Fuseki (inside
>>> tomcat ssl container)
>>>
>>> On Wed, Feb 4, 2015 at 12:57 PM, Rob Vesse <[email protected]> wrote:
>>>
>>>> Trevor
>>>>
>>>> Did the key store approach not work for you?
>>>>
>>>> That is the preferred approach as the code approach you've used
>>>> essentially removes any SSL security from your application and makes it
>>>> vulnerable to man in the middle attacks
>>>>
>>>> Rob
>>>>
>>>> On 04/02/2015 08:10, "Trevor Donaldson" <[email protected]> wrote:
>>>>
>>>> >In case anyone else is struggling with this. I had to go with the
>>>> method
>>>> >that Rob described here
>>>> >
>>>> >
>>>> https://github.com/rvesse/sparql-query-bm/blob/master/cmd/src/main/java/ne
>>>> >t/sf/sparql/benchmarking/commands/AbstractCommand.java#L444
>>>> >
>>>> >More specifically trusting all certificates.
>>>> >
>>>> >On Tue, Feb 3, 2015 at 8:19 PM, Rob Vesse <[email protected]>
>>>> wrote:
>>>> >
>>>> >> As I suggested based on your original description this error does
>>>> indeed
>>>> >> mean that the certificate is not trusted.  Either it is a self-signed
>>>> >> certificate OR there is an untrusted certificate/certificate
>>>> authority
>>>> >>in
>>>> >> the certificate chain
>>>> >>
>>>> >> You should not need to pass a SSLContext to anything in order to
>>>> resolve
>>>> >> this.
>>>> >>
>>>> >> Configuring the key store on your machine to trust the relevant
>>>> >> certificate(s) is a JVM level feature and will be sufficient in most
>>>> >> cases.  The key store is automatically discovered by the JVM and
>>>> used by
>>>> >> higher level libraries like Apache HTTP Client (which underpins all
>>>> HTTP
>>>> >> functionality in ARQ).
>>>> >>
>>>> >> Rob
>>>> >>
>>>> >> On 03/02/2015 16:25, "Trevor Donaldson" <[email protected]> wrote:
>>>> >>
>>>> >> >Thanks Rob. Apologies for not adding some of the stacktrace. Here is
>>>> >>the
>>>> >> >error.
>>>> >> > PKIX path building failed:
>>>> >> >sun.security.provider.certpath.SunCertPathBuilderException: unable
>>>> to
>>>> >>find
>>>> >> >valid certification path to requested target
>>>> >> >
>>>> >> >DatasetAccessor datasetAccessor =
>>>> DatasetAccessorFactory.createHTTP("
>>>> >> >https://localhost:8443/ds";);
>>>> >> >
>>>> >> >I believe I may have to pass the HttpAuthenticator with an
>>>> SSLContext.
>>>> >>Not
>>>> >> >sure how the DatasetAccessorFactory "knows" about my keystore and
>>>> >> >truststore.
>>>> >> >
>>>> >> >On Tue, Feb 3, 2015 at 6:38 PM, Rob Vesse <[email protected]>
>>>> wrote:
>>>> >> >
>>>> >> >> Trevor
>>>> >> >>
>>>> >> >> An invalid certificate exception generally means that the
>>>> >>certificate is
>>>> >> >> not trusted (often because it is self-signed) but without seeing a
>>>> >> >> specific error condition and stack trace we can only guess what
>>>> the
>>>> >> >>actual
>>>> >> >> problem is.
>>>> >> >>
>>>> >> >> Generally I would not expect it to be a HttpAuthenticator specific
>>>> >> >>problem
>>>> >> >> but again without a stack trace we can only speculate.  You can
>>>> use
>>>> >>the
>>>> >> >> debugging support (basically appropriately configuring logging) if
>>>> >>you
>>>> >> >> want to see exactly what Apache HTTP Client is doing under the
>>>> hood:
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >>
>>>> >>
>>>> https://jena.apache.org/documentation/query/http-auth.html#debugging-auth
>>>> >> >>en
>>>> >> >> tication
>>>> >> >>
>>>> >> >> Trusting a certificate that would otherwise not be trusted is
>>>> >>generally
>>>> >> >>a
>>>> >> >> JVM specific task and requires you to either configure the JVM key
>>>> >>store
>>>> >> >> on each machine your client runs on appropriately OR do some nasty
>>>> >>code
>>>> >> >> hacks that essentially disables SSL certificate verification in
>>>> your
>>>> >> >>JVM.
>>>> >> >> For example the following SO question shows both approaches:
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >>
>>>> >>
>>>> http://stackoverflow.com/questions/2893819/telling-java-to-accept-self-si
>>>> >> >>gn
>>>> >> >> ed-ssl-certificate
>>>> >> >>
>>>> >> >> I have some helper scripts that I've used in the past up on
>>>> BitBucket
>>>> >> >>that
>>>> >> >> can help automate the key store management because it is a little
>>>> >> >>esoteric
>>>> >> >> if you've never had to do it before:
>>>> >> >>
>>>> >> >> https://bitbucket.org/rvesse/java-ssl-helper/overview
>>>> >> >>
>>>> >> >> Note that under some JVMs using this approach may not help (IBM V9
>>>> >>was
>>>> >> >> problematic if memory serves) and you may need to use the code
>>>> >>approach
>>>> >> >> instead.  See the following code where I've done this in a tool
>>>> that
>>>> >> >>uses
>>>> >> >> ARQ and HttpAuthenticator's in the past:
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >>
>>>> >>
>>>> https://github.com/rvesse/sparql-query-bm/blob/master/cmd/src/main/java/n
>>>> >> >>et
>>>> >> >> /sf/sparql/benchmarking/commands/AbstractCommand.java#L444
>>>> >> >>
>>>> >> >> Rob
>>>> >> >>
>>>> >> >>
>>>> >> >> On 03/02/2015 12:49, "Trevor Donaldson" <[email protected]>
>>>> wrote:
>>>> >> >>
>>>> >> >> >Is it possible to setup an ssl context using HttpAuthenticator?
>>>> I am
>>>> >> >> >getting an invalid certificate exception when I try to use
>>>> >> >>DataSetFactory.
>>>> >> >> >I believe this is because the actual call is not using SSL.
>>>> >> >> >
>>>> >> >> >Thanks
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to