TL;DR
Anyone can technically try to create a certificate, but making it trusted is the hard part. This guide explains how Certificate Authorities (CAs) work and what you need to do to ensure only valid certificates are used on your systems.
Understanding Certificates & Trust
Digital certificates verify the identity of websites and other online entities. They’re issued by trusted organisations called Certificate Authorities (CAs). Your computer or browser has a list of these CAs it trusts. When you visit a website with a valid certificate from a trusted CA, your browser knows it’s likely talking to the real site.
Why Anyone Can Create a Certificate
Creating a self-signed certificate is easy. It’s like writing yourself a letter of recommendation – anyone can do it! The problem isn’t creating the certificate, but getting others (browsers, operating systems) to trust it.
Steps to Secure Your Certificate System
- Choose a Reputable Certificate Authority:
- Don’t try to create your own CA unless you have very specific needs and understand the security implications.
- Use well-known CAs like Let’s Encrypt, DigiCert, Sectigo, or GlobalSign.
- Obtain a Certificate:
- Most CAs offer different types of certificates (Domain Validated (DV), Organisation Validated (OV), Extended Validation (EV)). Choose the right one for your needs. DV is simplest, EV provides the highest level of assurance.
- Follow the CA’s instructions to prove you control the domain or organisation you’re requesting a certificate for.
- Install the Certificate Correctly:
- The installation process varies depending on your web server (Apache, Nginx, IIS). Consult your server’s documentation.
- Ensure you install both the certificate and any intermediate certificates provided by the CA. These form a ‘chain of trust’.
- Configure Your Web Server:
- Tell your web server to use the correct certificate for HTTPS connections.
- Enable HTTP Strict Transport Security (HSTS) to force browsers to always use HTTPS. This helps prevent man-in-the-middle attacks.
- Regularly Renew Certificates:
- Certificates expire! Set reminders or automate renewal using tools like Certbot (for Let’s Encrypt).
- Expired certificates will cause browser warnings and prevent secure connections.
- Monitor Certificate Revocation Lists (CRLs) & OCSP:
- CAs can revoke certificates if they are compromised. Browsers check CRLs or use Online Certificate Status Protocol (OCSP) to verify a certificate hasn’t been revoked.
- Ensure your systems are configured to respect CRLs and OCSP responses.
- Secure Your Private Key:
- The private key is the most important part of the system. Keep it secret!
- Store it securely, with restricted access. Use strong encryption and consider Hardware Security Modules (HSMs).
- Never share your private key with anyone.
Checking Certificate Details
You can check a certificate’s details in your browser:
- Visit the website using HTTPS.
- Click on the padlock icon in the address bar.
- Select ‘Certificate’ or ‘Connection is secure’.
- Examine the issuer, subject, validity dates, and other details to confirm it’s a valid certificate from a trusted CA.
Example: Using OpenSSL to Verify Certificate Chain
You can use OpenSSL to verify the complete certificate chain:
openssl s_client -connect yourdomain.com:443
This command will show you the certificate chain presented by the server, allowing you to check if all intermediate certificates are present and valid.
cyber security Best Practices
- Keep your web server software up-to-date with the latest security patches.
- Implement strong access controls to protect your certificate files.
- Regularly audit your certificate system for vulnerabilities.

