CA/Server configuration
Dmitrii Odintcov
cyprussocialite at gmail.com
Mon Oct 3 03:14:40 UTC 2022
Hello all
Thank you for your replies. They are all helpful in their different ways,
but have missed one particular point I was looking to clarify.
Suppose I have two private keys: one for a CA named 'foo', and one for a
server, 'bar'. I am using `req` to produce a CSR *from* bar *to* foo, and
then using `ca` to have foo generate a certificate *for* bar. Both of these
commands can accept the `-config` and `-extensions` arguments. It seems to
me that the two configs used would be answering the same abstract
questions, but from the different perspectives of a cert requestor and a
cert issuer:
- Who am I (the requestor)? / Who am I (the issuer)?
Presumably this is handled by distinguished_name.
- What kind of certificate do I want? / What kind of certificate am I
willing to issue?
Handled by req_extensions and/or x509_extensions?
- For how long do I want the certificate to be valid? / For how long am
I willing to make the certificate valid?
Handled by default_days.
- etc.
This is where the confusion begins: if ‘bar’, the certificate requestor,
itself wants to be a CA (basicConstraints = CA:true), then its bar.conf
must answer *both* sets of questions at the same time! I don’t see how this
is possible when the same sections and parameter names are used.
For instance, if bar wants to request its own CA certificate to be valid
for 5 years, but is only willing to issue others’ certificates for 1 year,
what should `default_days` be in bar.conf? Generally, would bar’s `req`
section determine what bar itself wants to request, or how it processes the
requests of others? And since bar.conf has `basicConstraints = CA:true` to
request a CA certificate for itself, wouldn’t all the certificates it
issues also be CAs?
I fully expect my deductions above to be completely wrong because they
don’t make any sense, but I also do not understand how things *do* work,
and would greatly appreciate an explanation.
Best regards
On Fri, 30 Sept 2022 at 12:58, Michael Richardson <mcr at sandelman.ca> wrote:
>
> Cyprus Socialite <cyprussocialite at gmail.com> wrote:
> > I am looking to clarify some conceptual and practical questions I've
> > accumulated while trying to configure a private 'Root CA -
> Intermediate
> > CA - Server' setup. Most of my confusion revolves around the
>
> Okay.
> (The word out there is "Intermediate CA" is a term best used in the
> context of
> Bridge/Federation of CAs, and that the term "Subordinate CA" is preferred
> in
> the original specifications. I think you are creating a subordinate CA)
>
> I think that you have gone some distance and entered into questions which I
> have very little opinion, and maybe nobody else does other than to observe
> what choices others have made.
>
> Bob, Henk and I maintain two IETF internet-draft repos whose goal it is to
> act as a demonstration of build two-level ECDSA and EDDSA CA+subordinate.
> (We never intend to publish as RFC, but preferred ID format)
> They are at:
> https://github.com/mcr/draft-moskowitz-ecdsa-pki-1
> https://datatracker.ietf.org/doc/html/draft-moskowitz-ecdsa-pki-10
> https://github.com/rgmhtt/draft-moskowitz-eddsa-pki
>
> > Secondly, how is the absence of a configuration
> field/section/extension
> > handled? Does it default to some value (e.g. from
> /etc/ssl/openssl.cnf)
>
> It defaults to whatever openssl.cnf you have pointed to.
>
> > or simply remain empty? For example, if I have no interest in OCSP
> > functionality, is the non-provision of all of the related fields
> enough
> > to prevent my certificates being declared invalid because CRL
> requests
> > fail?
>
> yes.
>
> > Thirdly, I would like to understand the difference between the
> 'digest'
> > and the 'cipher' and what roles they perform in the communication
> > process, especially in relation to the actual signing algorithm. As
> an
> > aside: I've noticed that using any of the `sha3-*` digests somehow
> > prevents Windows 10 from verifying my certificates.
>
> cipher would not be used in a CA.
> I would guess Windows10 does not support SHA3?
>
> > Onto more practical concerns, I am thoroughly confused by how many
> > OpenSSL tools seemingly perform the same tasks. For example, one can
>
> Yes, because the "openssl" tool is not really intended to be for
> production.
> It exists mostly to allow the libraries to be configured and tested.
> So, it evolved based upon the need of the day, not any master design.
>
> I've argued for splitting much of the higher-layer functions that it does
> into a different git repo, as the tool is too intimate with the libraries,
> and the continue to be things you can't (easily) do programatically, but
> the
> tools do.
>
> > Finally, if anyone happens to be in possession of an exhaustive
> > configuration file that includes *all* possible sections and fields
> > supported by OpenSSL, I would very much appreciate a copy!
>
> Not me.
> A Xmas-Lights configuration would be interested to look at, but likely more
> confusing than useful.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mta.openssl.org/pipermail/openssl-users/attachments/20221003/9bee2472/attachment.htm>
More information about the openssl-users
mailing list