Bonjour,

Hodie pr. Non. Mar. MMV est, ohaya scripsit:
> This is the self-signed root CA cert.  It is now V3, and has the AKI and
> SKI.

Good.

>It still has "Digital Signature", as I wasn't sure about what to
> do with that on the root CA cert:

It's useless, as you'll really use the Root certificate to
sporadically sign new sub-CA certificates when the need occurs. But
it's also harmless.
You'll also have to sign a CRL with this Root, with a large validity
period (it can even be as large as the certificate itself, you're
allowed to create new CRLs anytime).

>         Validity
>             Not Before: Mar  6 07:26:33 2005 GMT
>             Not After : Mar  7 07:26:29 2013 GMT

1024 bits might be a bit short by 2013. 1024 may not be broken by that
date, but the margin will be pretty thin.

>         X509v3 extensions:
>             X509v3 Basic Constraints: 
>                 CA:TRUE

If you want your certificates to be RFC3280 compliant, then this
extension MUST be critical. The X.509 standard tells you that if this
extension is not critical and not recognized by the software, then
this certificate is considered an end-user certificate. Not what you
want. So the X.509 standard recommends it to be flagged critical.

> This is the subordinated CA cert, signed by the ROOT CA.  It is now V3
> also, and has the AKI and SKI.  It does not have "Digital Signature":

[...]
>             Not Before: Mar  6 07:30:41 2005 GMT
>             Not After : Mar  4 07:27:05 2013 GMT

Same remark about the key size and the validity period of the
certificate.

>         Subject: [EMAIL PROTECTED], C=US, O=JimDept, OU=JimCo,
> CN=ATEST7-SUBROOT-CA
>         Subject Public Key Info:
>             Public Key Algorithm: rsaEncryption
>             RSA Public Key: (1024 bit)
>                 Modulus (1024 bit):
>                     00:dc:ca:a8:d1:c8:41:91:82:91:fe:d8:c2:8d:2d:
> .
> <snip>
> .
>                     8c:b1:b2:de:b8:6c:7a:74:67
>                 Exponent: 65537 (0x10001)
>         X509v3 extensions:
>             X509v3 Basic Constraints: critical
>                 CA:TRUE, pathlen:0

Extension flagged critical, and pathlen restricted, good.

>             X509v3 Key Usage: critical
>                 Certificate Sign, CRL Sign

Good.

> Finally, just for completeness, this is a client cert that I created
> from the subroot CA cert:
> 
> Certificate:
>     Data:
>         Version: 3 (0x2)
>         Serial Number:
>             0a:ba:76:83:46:f0:87:10:18:b0:36:b6:98:5e:24:15
>         Signature Algorithm: sha1WithRSAEncryption
>         Issuer: [EMAIL PROTECTED], C=US, O=JimDept, OU=JimCo,
> CN=ATEST7-SUBROOT-CA
>         Validity
>             Not Before: Mar  6 07:54:13 2005 GMT
>             Not After : Mar  1 07:27:49 2013 GMT
>         Subject: [EMAIL PROTECTED], C=US, O=JimDept, OU=JimCo,
> CN=USER30-ATEST7
>         Subject Public Key Info:
>             Public Key Algorithm: rsaEncryption
>             RSA Public Key: (1024 bit)
>                 Modulus (1024 bit):
>                     00:aa:b0:98:d9:66:4a:fa:7c:73:28:f3:fc:43:cd:
> .
> <snip>
> .
>                     53:84:c8:4c:60:f1:48:48:97:15:8e:85:89:5c:ad:
>                     9a:aa:76:e7:a2:6b:2e:51:43
>                 Exponent: 65537 (0x10001)
>         X509v3 extensions:
>             X509v3 Key Usage: critical
>                 Digital Signature

So this certificate can't be used for decrypting messages (emails for
example).

>             Netscape Cert Type: 
>                 SSL Client

This extension is an old one, and honestly can raise more problems
than solutions. It was 'invented' by Netscape before the
extendedKeyUsage came and fulfills the same goal (provide usage
information with more accuracy than the keyUsage extension alone), but
as it isn't standard, applications are free to ignore it. Today, I
know that Netscape+Mozilla products use it, Java crypto API does, and
maybe OpenSSL recognizes it, but I'm not sure. This extension is
checked with others (keyUsage, extendedKeyUsage), also with
certificate characteristics (fields of the DN of the subject), and
criticality status of those extensions. It can really be a mess.


Now, next point. The revocation status. You must either generate CRLs
of provide a way to check the revocation status of any certificate
(OCSP for example). That means an additional extension can be added to
all certificates (but the Root).

-- 
Erwann ABALEA <[EMAIL PROTECTED]>
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to