> From: owner-openssl-us...@openssl.org On Behalf Of Edward Ned Harvey
> Sent: Tuesday, 06 March, 2012 13:18

> > From: owner-openssl-us...@openssl.org [mailto:owner-openssl-
> > us...@openssl.org] On Behalf Of Mr.Rout
> > 
> > 1) what is intermediate certificate validation ?
> 
> When you generate a CSR, the CA can sign it directly, or they 
> can sign it
> via an intermediate.  I'm not quite sure what's the point of the

Nits: The CSR isn't signed by the CA; the cert is. The cert is 
based on the CSR but is NOT the same. The CA can sign your cert 
directly *by their root*, or by an intermediate under their root.

> intermediate, but the root CA signs the intermediate, and the 
> intermediate
> signs the CSR.  I think this allows for varying levels of 
> trust - If you're
> using a cheap or free root CA, you probably just have a 
> really low level of
> verification.  You were able to read an email they sent to 
> somebody presumed
> to be authoritative for that domain or whatnot.
> 
It does allow more easily specifying different policies, 
and changing them, although most users don't pay attention 
except EV. It can also reduce the size of CRLs, and perhaps 
distribute CRLDP or OCSP load if that becomes an issue.

It also allows keeping the root key better protected offline.
An intermediate CA cert can be revoked and replaced easily, 
and can be reissued at frequent intervals if desired as long 
as the child certs under it are equally short-lived.

Revoking, replacing, or reissuing a root requires updating all 
reliers, which for the public Web means all browsers. E.g. 
when the Diginotar breach happened, MS had to push an update 
to all PCs, and Firefox had to release a whole new version.

It also allows new or 'spinoff' CAs to inherit trust from an 
already distributed root until they establish their own root, 
and can allow a subsidiary CA to inherit trust on an ongoing 
basis (although that trust can also be abused).

These reasons can combine to produce 2 levels of intermediate 
cert in a chain, and possibly even more (but rarely).

> 
> > 2) Is it required to keep chained certificate or End user 
> certificate at
> > Server Side
> 
> Generally, if your server cert is signed via intermediate, 
> your server will
> need the server cert + the root cert + the intermediate.
> 
An SSL server (or client using client auth) should never need 
to send its root, because the client (or server) must ignore 
any root received and trust only those configured locally.
OTOH it may be more convenient to configure it, especially if 
using the same key/truststore in both directions, and it does 
no harm other than wasting a little bandwidth, which for most 
devices and users today is unnoticeable.

You do need to send any and all intermediate(s) -- unless you 
know the recipient already has them, which you usually don't.

> 
> > 3) How to generate intermediate certificate using Openssl command ?
> 
> If you are self-signing your certs, I think you probably want 
> to skip the
> intermediate, and just sign directly with your root.
> 
Although if you *want* to do your own intermediate CAs&certs 
for whatever reason, OpenSSL commandline can do that with 
appropriate configuration and/or options. (And of course 
the library can be used to construct whatever you code for.)


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to