Using RSA we can prove that a server is the owner to the public key that they say is theirs:

But this does not verify that they can be trusted. Since anybody can create a private and public key.
Digital Certificates
This why need digital certificates. The verification uses a trusted third party, to authenticate that it’s legit. This is managed through a PKI (Public key infrastructure)
Example Certification:
Server.com wants to get a certificate
- They create a CSR (Certificate Signing Request)
- The CSR is sent to a CA (Certification Authority)
Examples of CA: GoDaddy, letsencrypt, Geotrust, etc.
- CA does identification checks, if you are who you say you are and they charge you for this.

Optionally: The CA could send an RA (Registration Authority) the task to verify your identity.
- If you are legit, the CA will create and sign this certificate (with their private key) and sends it back to the server
Now the server has the certificate from a trusted CA that proves them to their clients.


Usage of Certificates and Chain of Trust
If a client of server.com wants to see if they can trust server.com they will ask for their certificate.

- The client will receive a signature (signed with the private key of server.com) which the clients decrypts using their public key. The signature has the certificate from server.com + the signature of a CA inside.
- Now the client will have to decrypt this signature using the public key of the CA that signed the certificate from server. This will give them their certificate and a signature from another even more “trusted” CA.
- This continues until you (hopefully/if the chain of trust works) end up at a root certificate.
The root certificates are trusted because they are built into the operating system. They are self-signed
Root certificates
Are located in the trust store or the root certificate store of your operating system.
PKI (Public Key Infrastructure)
This chain of trust system we would call a PKI. The PKI is only secure if:
- The private keys of the servers are actually secret
- The trust store of the client has not been manipulated