Certificates are used every day, often without the user's knowledge. For example when visiting a website, e.g. https://www.iba-ag.com, the connection is secured by means of certificates.

The certificates themselves contain certain information about the owner (e.g., company, name, e-mail address, etc.) as well as two other components: a private key that is kept secret and a public key that everyone is allowed to know.

In order to avoid the "chicken and egg problem" when it comes to trusting certificates, external certificate authorities operate on the principle of "blind trust". To ensure the proper functioning of this "blind trust", the certificates provided by the external certificate authorities are integrated into the operating system and the web browser.

Example procedure for the internal certificate authority

Table Procedure – issuing a certificate

1

Internal certificate authority

2

Creates a private key during the initial setup

3

Creates a certificate request (CSR) and sends it to the external authority

4

External certificate authority

5

Signs the request (CSR) and issues the certificate (CRT)

6

Signed certificate (CRT) is saved by the internal certificate authority

7

Internal certificate authority with valid certificate

During initial setup, the internal certificate authority either has no certificate or only a self-signed one. In order for others to trust this authority, it first issues a certificate request. This is then verified and signed by the external certificate authority. The resulting certificate for the internal authority is thus signed by the external authority. This creates a certification path from the external to the internal authority. Since the external authority is blindly trusted and it has signed the internal authority, the latter is also trusted. If the internal authority in turn issues a certificate, e.g., for a website belonging to the organization, this certificate is also trusted based on the same certification path.

As can be seen, the certificate for Jane Doe is trusted because of the end-to-end certification path, since the intermediate certificate authority (Identity CA) was signed by the internal certificate authority.

Content of a CSR (decoded)

Certificate Request:

Data:

Version: 1 (0x0)

Subject: C = US, ST = Georgia, L = Alpharetta,

O = Example Corporation, CN = Jane Doe

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public-Key: (2048 bit)

Modulus:

00:af:71:5e:f6:08:f2:3c:67:ee:ba:cb:b7:03:c2:

...

Exponent: 65537 (0x10001)

Attributes:

a0:00

Signature Algorithm: sha256WithRSAEncryption

1b:22:14:81:55:38:2a:7e:4c:f6:82:84:72:35:e3:23:d6:25:

...

In addition to the public key, the CSR also contains information about the applicant.

  • Country (C): Country code

  • State (ST): Federal state/province

  • Locality (L): Town/City

  • Organization (O): Company

  • Common Name (CN): Name of the applicant or FQDN

Optional:

  • Organizational Unit (OU): Department name within the company

  • emailAddress: Contact address

Content of a signed certificate (decoded):

Certificate:

Data:

Version: 3 (0x2)

Serial Number:

7d:fd:25:09:b6:5b:57:63:0f:21:0d:e6:14:79:93:47:4c:0f:da:ee

Signature Algorithm: sha256WithRSAEncryption

Issuer: CN = Identity CA, ST = Bavaria, C = DE,

emailAddress = it@excorp.local, O = Identity CA,

OU = IT-Department, L = Fuerth

Validity

Not Before: Mar 23 16:49:31 2021 GMT

Not After: Mar 23 16:49:31 2023 GMT

Subject: C = US, ST = Georgia, L = Alpharetta,

O = Example Corporation, CN = Jane Doe

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public-Key: (2048 bit)

Modulus:

00:af:71:5e:f6:08:f2:3c:67:ee:ba:cb:b7:03:c2:

...

Exponent: 65537 (0x10001)

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

X509v3 Authority Key Identifier:

keyid:1D:D2:37:DD:9B:CF:DE:DC:14:71:87:D0:C9:4B:5D:3C:B7:C0:B4:D5

X509v3 Key Usage:

Digital Signature, Non Repudiation, Key Encipherment,

Data Encipherment

Signature Algorithm: sha256WithRSAEncryption

7d:ab:3b:b0:24:e6:3b:09:69:27:ad:9f:fa:1e:0a:fb:84:4d:

...

Once the certificate request is signed, the certificate then also contains information about the certificate authority as well as the validity and permitted uses (X509v3 Key Usage) of the certificate.

To authenticate oneself using the certificate, e.g., with internal or external (cloud) services, only the public key must be stored by the corresponding service. The user or device can then log in to the service without a password.