If you are using client certificates, use a CRL at the server side.
that way you can assure that only those that you want can connect to
the server

Regarding the certificates.
* Distribute the CA certificates (a simple script suffices)
* Store the certificates and keys on a safe medium you can put in a vault
* Store only the CA certificates (not the keys) and the server
certificate and key on your server.
Obviously all keys are encrypted using a strong password...

Regards,

Serge Fonville


To answer your original question, you can not verify a chain without
all chain members to verify against root --> sub --> client/server
cert

On Wed, Sep 2, 2009 at 12:02 PM, Yin, Ben 1. (NSN - CN/Cheng
Du)<ben.1....@nsn.com> wrote:
> Yes. It use openssl lib.
>
> My client & server looks like follow to set up sub ca and certificate, the 
> CERTFILE only include the certificate signed by sub ca. Thanks.
>
> ...
>    if (SSL_CTX_load_verify_locations(ctx, CAFILE, CADIR) != 1)
>        int_error("Error loading CA file and/or directory");
>    if (SSL_CTX_set_default_verify_paths(ctx) != 1)
>        int_error("Error loading default CA file and/or directory");
>    if (SSL_CTX_use_certificate_chain_file(ctx, CERTFILE) != 1)
>        int_error("Error loading certificate from file");
>    if (SSL_CTX_use_PrivateKey_file(ctx, KEYFILE, SSL_FILETYPE_PEM) != 1)
>        int_error("Error loading private key from file");
> ....
>
>
> Br
>
> Ben
>
> -----Original Message-----
> From: owner-openssl-us...@openssl.org 
> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Serge Fonville
> Sent: Wednesday, September 02, 2009 12:52 PM
> To: openssl-users@openssl.org
> Subject: Re: Verify certificate using subordinate ca
>
> Wat exactly are the applications you use, are they compiled against
> openssl libraries?
>
> On Wed, Sep 2, 2009 at 11:49 AM, Yin, Ben 1. (NSN - CN/Cheng
> Du)<ben.1....@nsn.com> wrote:
>> Yes. When server send certificate signed by sub ca to client. How client can 
>> verify it only use sub ca. would you please show me the client side code? 
>> :-)  Thanks.
>>
>>
>> Br
>>
>> Ben
>>
>> -----Original Message-----
>> From: owner-openssl-us...@openssl.org 
>> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Serge Fonville
>> Sent: Wednesday, September 02, 2009 12:43 PM
>> To: openssl-users@openssl.org
>> Subject: Re: Verify certificate using subordinate ca
>>
>> Everytime an application connects to an ssl-enabled server the
>> certificate chain is verified.
>>
>> On Wed, Sep 2, 2009 at 11:37 AM, Yin, Ben 1. (NSN - CN/Cheng
>> Du)<ben.1....@nsn.com> wrote:
>>> Hi,
>>>
>>> What's you mean "If your client application supports that", do you mean I 
>>> do the verify by client itself, don't use openssl default verify 
>>> functionality?
>>>
>>>
>>> Br
>>>
>>> Ben
>>>
>>> -----Original Message-----
>>> From: owner-openssl-us...@openssl.org 
>>> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Serge Fonville
>>> Sent: Wednesday, September 02, 2009 11:59 AM
>>> To: openssl-users@openssl.org
>>> Subject: Re: Verify certificate using subordinate ca
>>>
>>> If your client application supports that, it could be done. but no
>>> standard compliant application allows that to my knowledge.
>>>
>>> On Wed, Sep 2, 2009 at 10:35 AM, Yin, Ben 1. (NSN - CN/Cheng
>>> Du)<ben.1....@nsn.com> wrote:
>>>> Hi Serge,
>>>>
>>>> Maybe we can put the root ca into the verification chain if I can prove 
>>>> the verfiy certificate using only sub ca is impossible. But before that, 
>>>> do you know if it's possible to verfiy certificate without root ca? Thanks.
>>>>
>>>>
>>>> Br
>>>>
>>>> Ben
>>>>
>>>> -----Original Message-----
>>>> From: owner-openssl-us...@openssl.org 
>>>> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Serge Fonville
>>>> Sent: Wednesday, September 02, 2009 11:28 AM
>>>> To: openssl-users@openssl.org
>>>> Subject: Re: Verify certificate using subordinate ca
>>>>
>>>> How do you think compromising a CA would occur, because a CA could
>>>> only becom compromised when someone leaks the key for that specific CA
>>>> And if it happens once, it will likely happen twice. And I hope in
>>>> your best interest, you are not distributing keys to terminals.
>>>>
>>>> Also, if you need to copy a file to 1000^2 terminals, use a script.
>>>> I assume you have a list of all these terminals (otherwise you have a
>>>> serious problem)
>>>>
>>>> I assume you are using server certificates and client certificates.
>>>> with these there corresponds a CRL, this crl can be automatically used
>>>> by any clientapplication that uses a certificate issued by any CA
>>>>
>>>> Bacically, are you distributing keys to terminals?
>>>>
>>>> Regards,
>>>>
>>>> Serge Fonville
>>>>
>>>> On Wed, Sep 2, 2009 at 8:21 AM, Yin, Ben 1. (NSN - CN/Cheng
>>>> Du)<ben.1....@nsn.com> wrote:
>>>>> OK, regarding the CA deploy, such as, we have a one root ca and 1000 sub 
>>>>> ca signed by root ca. and each sub ca used as ca by 1000 terminals.so the 
>>>>> total network size is 1000*1000. All our ca, including root ca and sub 
>>>>> ca, was stored offline. I need copy sub ca to terminal it was used. So if 
>>>>> one of sub ca was compromised, what I need to do is sign a new sub ca 
>>>>> using root ca and copy it to 1000 terminal where sub ca has been 
>>>>> compromised. And if root ca was compromised, I need to re-deploy CA on 
>>>>> 1000*1000 terminal mannuly. That is why I want to keep root ca out of the 
>>>>> chain. And only using sub ca and certificate to do the verification.  
>>>>> Dose it possible? It seems that openssl always try to find the issuer of 
>>>>> sub ca during tht chain verification because it wasn't self signed root 
>>>>> ca.
>>>>>
>>>>>
>>>>> Br
>>>>>
>>>>> Ben
>>>>>
>>>>> -----Original Message-----
>>>>> From: owner-openssl-us...@openssl.org 
>>>>> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Serge Fonville
>>>>> Sent: Tuesday, September 01, 2009 5:14 PM
>>>>> To: openssl-users@openssl.org
>>>>> Subject: Re: Verify certificate using subordinate ca
>>>>>
>>>>> I don't see your problem honestly. Figuring out a private key is close
>>>>> to impossible.
>>>>> And stealing it, well, that is more related to security itself than to
>>>>> the actual key being secure or not.
>>>>>
>>>>> >From what I understand, a chain works somewhat like this
>>>>>
>>>>> you
>>>>> --peter
>>>>> ----john
>>>>> ------carl
>>>>>
>>>>> You talk to peter, peter is trusted by john, john is trusted by carl,
>>>>> you trust carl
>>>>> Say if you were to obsolete carl in this chain (by trusting john) john
>>>>> would then become the root
>>>>> If this is the case, why would you want to have carl at all?
>>>>>
>>>>> Thawte, verisign etc work the same way
>>>>>
>>>>> Also, why is distributing a CA cert so difficult?
>>>>> What is your environment?
>>>>> What applications are using the certs?
>>>>> And how do they verify the chain?
>>>>>
>>>>> Again, without the key for each CA it can't be compromised
>>>>> Has this actually happened or is this someone eing paranoid?
>>>>>
>>>>> Who has created the chain?
>>>>>
>>>>> I'm still not clear of the purpose of the root ca if it should not
>>>>> need to be trusted
>>>>>
>>>>> Regards,
>>>>>
>>>>> Serge Fonville
>>>>>
>>>>> On Tue, Sep 1, 2009 at 3:52 PM, Yin, Ben 1. (NSN - CN/Cheng
>>>>> Du)<ben.1....@nsn.com> wrote:
>>>>>> No. In our enviroment. The root CA private key is isolated and absolutly 
>>>>>> safe. Regarding the compromised, I means CA can't be trusted any more, 
>>>>>> Such as the private key was stolen some how or someone find a way to 
>>>>>> figure out private key for one CA. it easy to set up new sub ca in one 
>>>>>> domain if those compromise happened on sub ca. but if it happened on 
>>>>>> root ca, it's quite hard to fix the our whole network. Thanks.
>>>>>>
>>>>>>
>>>>>> Br
>>>>>>
>>>>>> Ben
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: owner-openssl-us...@openssl.org 
>>>>>> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Serge Fonville
>>>>>> Sent: Tuesday, September 01, 2009 4:31 PM
>>>>>> To: openssl-users@openssl.org
>>>>>> Subject: Re: Verify certificate using subordinate ca
>>>>>>
>>>>>> Based on what you state.
>>>>>> There is no purpose for the root CA.
>>>>>>
>>>>>> What do you mean by compromised.
>>>>>> If you publish a CA certificate to clients, it does not include the
>>>>>> key. (normally)
>>>>>> So the only thing a client can do is use it in the session at best.
>>>>>> There is NO way a client can use a CA certificate to sign anything
>>>>>> without the corresponding key.
>>>>>>
>>>>>> I have a chain on my website, and noone (except me, because I can
>>>>>> access the server) is able to sign anything. Since the CAs are only
>>>>>> used for signing and verifying and not for encrypting, if the CA keys
>>>>>> are stored safely, there is no 'compromise'
>>>>>>
>>>>>> Are you distributing the keys as well?
>>>>>>
>>>>>> HTH
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Serge Fonville
>>>>>>
>>>>>>
>>>>>> On Tue, Sep 1, 2009 at 2:13 PM, Yin, Ben 1. (NSN - CN/Cheng
>>>>>> Du)<ben.1....@nsn.com> wrote:
>>>>>>> I only want to verfiy the signature (I mean the procedure when sub ca
>>>>>>> sign the certiticate). So I guess sub ca and certification should has
>>>>>>> enough info to do it because we needn't root ca when we use sub ca to
>>>>>>> sign the certificate.  Is there a way for this requirement? Thanks.
>>>>>>>
>>>>>>>
>>>>>>> Br
>>>>>>>
>>>>>>> Ben
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: owner-openssl-us...@openssl.org
>>>>>>> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Yin, Ben 1.
>>>>>>> (NSN - CN/Cheng Du)
>>>>>>> Sent: Tuesday, September 01, 2009 3:06 PM
>>>>>>> To: openssl-users@openssl.org
>>>>>>> Subject: RE: Verify certificate using subordinate ca
>>>>>>>
>>>>>>> Hi Serge,
>>>>>>>
>>>>>>> My intention is to keep my root ca out of compromise. We want to use sub
>>>>>>> ca to splite the domain in the our whole network. Then, we can easy to
>>>>>>> re-sign a new sub ca and publish it if we find one domain sub ca was
>>>>>>> compromised. And if we expose the the root ca to public ,it hard to
>>>>>>> maintain if root ca was cracked.
>>>>>>>
>>>>>>> And as you said, "create a new chain and let sub ca as root", I don't
>>>>>>> know how to do it. In my testing, I set verify depth to 1. I guess it
>>>>>>> will make chain only include certificate and sub ca. the testing show
>>>>>>> that the openssl still try to find the issuer of sub ca, and so the
>>>>>>> verification was failed.
>>>>>>>
>>>>>>> Here is the output:
>>>>>>>
>>>>>>>  -with certificate at depth: 1
>>>>>>>  issuer = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Root CA
>>>>>>>  subject = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Sub1 CA
>>>>>>>  err 20:unable to get local issuer certificate
>>>>>>> -with certificate at depth: 1
>>>>>>>  issuer = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Root CA
>>>>>>>  subject = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Sub1 CA
>>>>>>>  err 27:certificate not trusted
>>>>>>> -with certificate at depth: 0
>>>>>>>  issuer = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Sub1 CA
>>>>>>>  subject = /C=FI/ST=Tampere/L=Tampere/O=NSN/CN=lab.
>>>>>>>  err 27:certificate not trusted
>>>>>>>
>>>>>>> And FYI. Here is the complete chain verfication output.
>>>>>>>
>>>>>>> -with certificate at depth: 2
>>>>>>>  issuer = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Root CA
>>>>>>>  subject = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Root CA
>>>>>>>  err 0:ok
>>>>>>> -with certificate at depth: 1
>>>>>>>  issuer = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Root CA
>>>>>>>  subject = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Sub1 CA
>>>>>>>  err 0:ok
>>>>>>> -with certificate at depth: 0
>>>>>>>  issuer = /C=fi/O=WCDMA/CN=NSN Tre WCDMA Sub1 CA
>>>>>>>  subject = /C=FI/ST=Tampere/L=Tampere/O=NSN/CN=lab.
>>>>>>>  err 0:ok
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> Br
>>>>>>>
>>>>>>> Ben
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: owner-openssl-us...@openssl.org
>>>>>>> [mailto:owner-openssl-us...@openssl.org] On Behalf Of ext Serge Fonville
>>>>>>> Sent: Tuesday, September 01, 2009 2:14 PM
>>>>>>> To: openssl-users@openssl.org
>>>>>>> Subject: Re: Verify certificate using subordinate ca
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Hmm...
>>>>>>>
>>>>>>> I've had the same issue.
>>>>>>> Basically it came down to "how do you know if the sub is reliable if
>>>>>>> you do not know whether to trust the root?"
>>>>>>> If you do not wish to have the root as part of the chain, create a new
>>>>>>> chain where the sub is the root
>>>>>>> What is the reason you do not want to use the root in the chain check,
>>>>>>> but it should be part of the chain?
>>>>>>>
>>>>>>> HTH
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Serge Fonville
>>>>>>>
>>>>>>> On Tue, Sep 1, 2009 at 1:04 PM, Yin, Ben 1. (NSN - CN/Cheng
>>>>>>> Du)<ben.1....@nsn.com> wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> It there a way to verify certificate with out root ca? I have 4
>>>>>>> certificate:
>>>>>>>> rootca.pem is the root ca (self signed). subca.pem was signed by
>>>>>>> rootca.pem.
>>>>>>>> cert1.pem & cert2.pem was signed by subca.pem. I was supposed to
>>>>>>> configure
>>>>>>>> the client and server using subca.pem as ca, and cert1.pem & cert2.pem
>>>>>>> as
>>>>>>>> certificate. It seem that openssl still try to find rootca.pem to
>>>>>>> verfiy
>>>>>>>> subca.pem when handshake. But I don't what root.pem can bo accessed
>>>>>>> for
>>>>>>>> keeping it safe. So It there a way to verify certificate with out root
>>>>>>> ca,
>>>>>>>> only using sub ca and certificate signed by sub ca? Thanks.
>>>>>>>>
>>>>>>>> Br
>>>>>>>>
>>>>>>>> Ben
>>>>>>> ______________________________________________________________________
>>>>>>> OpenSSL Project                                 http://www.openssl.org
>>>>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>>>>> Automated List Manager                           majord...@openssl.org
>>>>>>> ______________________________________________________________________
>>>>>>> OpenSSL Project                                 http://www.openssl.org
>>>>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>>>>> Automated List Manager                           majord...@openssl.org
>>>>>>> ______________________________________________________________________
>>>>>>> OpenSSL Project                                 http://www.openssl.org
>>>>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>>>>> Automated List Manager                           majord...@openssl.org
>>>>>>>
>>>>>> ______________________________________________________________________
>>>>>> OpenSSL Project                                 http://www.openssl.org
>>>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>>>> Automated List Manager                           majord...@openssl.org
>>>>>> ______________________________________________________________________
>>>>>> OpenSSL Project                                 http://www.openssl.org
>>>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>>>> Automated List Manager                           majord...@openssl.org
>>>>>>
>>>>> ______________________________________________________________________
>>>>> OpenSSL Project                                 http://www.openssl.org
>>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>>> Automated List Manager                           majord...@openssl.org
>>>>> ______________________________________________________________________
>>>>> OpenSSL Project                                 http://www.openssl.org
>>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>>> Automated List Manager                           majord...@openssl.org
>>>>>
>>>> ______________________________________________________________________
>>>> OpenSSL Project                                 http://www.openssl.org
>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>> Automated List Manager                           majord...@openssl.org
>>>> ______________________________________________________________________
>>>> OpenSSL Project                                 http://www.openssl.org
>>>> User Support Mailing List                    openssl-us...@openssl.org
>>>> Automated List Manager                           majord...@openssl.org
>>>>
>>> ______________________________________________________________________
>>> OpenSSL Project                                 http://www.openssl.org
>>> User Support Mailing List                    openssl-us...@openssl.org
>>> Automated List Manager                           majord...@openssl.org
>>> ______________________________________________________________________
>>> OpenSSL Project                                 http://www.openssl.org
>>> User Support Mailing List                    openssl-us...@openssl.org
>>> Automated List Manager                           majord...@openssl.org
>>>
>> ______________________________________________________________________
>> OpenSSL Project                                 http://www.openssl.org
>> User Support Mailing List                    openssl-us...@openssl.org
>> Automated List Manager                           majord...@openssl.org
>> ______________________________________________________________________
>> OpenSSL Project                                 http://www.openssl.org
>> User Support Mailing List                    openssl-us...@openssl.org
>> Automated List Manager                           majord...@openssl.org
>>
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-us...@openssl.org
> Automated List Manager                           majord...@openssl.org
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-us...@openssl.org
> Automated List Manager                           majord...@openssl.org
>
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to