+1 to per-device

On 6/10/13 9:04 AM, "Will Stevens" <wstev...@cloudops.com> wrote:

>When I went looking in CS for the HTTP clients that were already
>available,
>I found the one that Soheil is using as well as the new apache one.  I am
>using the new apache one because I was assuming it was going to be the
>preferred one going forward.
>
>I will clean up my wrapper and make it available in the cloud-utils
>package.
>
>The only question now is if the 'allow unverified certs' should be a
>global
>setting or a per device setting.  I tend to think that it should be per
>device because that isolates the functionality a little better.  However,
>by creating a global setting it makes the concept more accessible to other
>developers and centralizes the setting for the user so they only have to
>specify the setting in one place and all devices which have been written
>to
>conform to that setting will allow unverified certs.
>
>I think there are pros and cons to both approaches.  I am fine to
>implement
>my code either way, so more feedback on this choice would be appreciated.
>
>ws
>
>
>On Thu, Jun 6, 2013 at 6:40 PM, Kelven Yang <kelven.y...@citrix.com>
>wrote:
>
>> Will,
>>
>> We don't have a common HTTPS client yet, as far as I know, different
>> module developers probably are using slight different way to deal with
>> self-signed certificate, it is a good time to consolidate it now if it
>>is
>> not too late. You may make the facility available in cloud-utils package
>> and encourage adoption from these modules.
>>
>> Some modules, i.e., download manager, API module to hypervisor hosts
>>have
>> the similar situation.
>>
>>
>> Kelven
>>
>> On 6/6/13 2:33 PM, "Soheil Eizadi" <seiz...@infoblox.com> wrote:
>>
>> >What is missing is a facility to import a certificate into the store.
>>If
>> >it was available you could use it for self signed CERTS. Ideally it
>> >should be part of GUI to add devices.
>> >
>> >I am implementing a similar HTTP Client. You are using
>>DefaultHttpClient
>> >so it is based on the newer Apache libraries. The ones I found in
>> >CloudStack were older Commons HttpClient which was EOL.
>> >
>> >In my case I planned to wrap the Client as you have for development and
>> >for production have an API to import a certificate for SSL into the
>> >Certificate Store.
>> >
>> >I would call to AuthScope(host, 443) to limit access to only the
>>specific
>> >host and port.
>> >
>> >-Soheil
>> >________________________________________
>> >From: williamstev...@gmail.com [williamstev...@gmail.com] on behalf of
>> >Will Stevens [wstev...@cloudops.com]
>> >Sent: Thursday, June 06, 2013 1:08 PM
>> >To: dev@cloudstack.apache.org
>> >Subject: Re: Handling Self Signed Certs
>> >
>> >Hey Kelven,
>> >I am using the same https client libraries as elsewhere in Cloudstack
>> >(well
>> >one of them because there is more than one version of http client libs
>> >currently available in CS).
>> >
>> >I am using this client:
>> >import org.apache.http.impl.client.DefaultHttpClient;
>> >
>> >I initialize it like this:
>> >_httpclient = new DefaultHttpClient();
>> >
>> >Then if self signed certs are allowed, I currently have a utility
>>library
>> >in my plugin which allows me to do this:
>> >// Allows you to connect via SSL using unverified certs
>> >_httpclient = HttpClientWrapper.wrapClient(_httpclient);
>> >
>> >Is there a class that already exists in CloudStack which I can use to
>>wrap
>> >my client to enable unverified certs, or will I need to add one?
>>Should I
>> >create a global setting such as 'Allow unverified SSL certs' which
>>would
>> >be
>> >checked by the code to determine if the http client should be wrapped?
>> >
>> >Thx, Will
>> >
>> >
>> >On Thu, Jun 6, 2013 at 2:43 PM, Kelven Yang <kelven.y...@citrix.com>
>> >wrote:
>> >
>> >> Will,
>> >>
>> >> We have several other integrated components that have the similar
>> >> situation, it makes sense to consolidate the HTTPS client we used
>>across
>> >> CloudStack and have a global configuration to deal with self-signed
>> >> certificate for all in testing or POC.
>> >>
>> >> To help testing/POC process to be smooth, we may allow self-signed
>> >> certificate by default(which is the current behave), security
>>sensitive
>> >> customers should disallow self-signed certificates in their
>>production
>> >> environment.
>> >>
>> >> Kelven
>> >>
>> >> On 6/6/13 9:08 AM, "Will Stevens" <wstev...@cloudops.com> wrote:
>> >>
>> >> >Hey All,
>> >> >I am building integration between CS and an external Palo Alto
>>Firewall
>> >> >device.  The API calls to the PA device are done over HTTPS.  In
>>some
>> >> >cases
>> >> >(like testing or a POC), it makes sense to use a self signed cert
>>for
>> >>this
>> >> >connection.
>> >> >
>> >> >Currently I have a little http client wrapper which allows the use
>>of a
>> >> >self signed cert.  Obviously, I do not want to use the wrapper when
>>a
>> >>real
>> >> >cert is used.
>> >> >
>> >> >What I am thinking of doing is adding a checkbox on the 'Add Palo
>>Alto
>> >> >Device' configuration overlay with an option for 'Using a self
>>signed
>> >> >cert'.  If this checkbox is checked, then the http client wrapper is
>> >>used
>> >> >so the self signed cert will not throw errors, if it is not checked,
>> >>the
>> >> >the http client wrapper will not be used and errors will be thrown
>>if
>> >>the
>> >> >cert is not valid.
>> >> >
>> >> >Is this a realistic approach to this problem?  Is this problem
>>handled
>> >>in
>> >> >other parts of the system in a different way?
>> >> >
>> >> >Thanks,
>> >> >
>> >> >Will
>> >>
>> >>
>>
>>

Reply via email to