This site is an archive and is no longer updated.
    CertificatesBeginner

    Self-Signed Certificates

    Understand when self-signed certificates are appropriate and their security implications.

    Interactive Demo
    LinkedInX
    Self-Signed Certificates

    Self-Signed vs CA-Signed Certificates

    CA-Signed Certificate

    YouCertificate Authority
    ↓ CA validates your identity
    CA signs withTHEIR private key
    ↓ Browsers trust CA
    Browsers trust YOU automatically

    Self-Signed Certificate

    YouYou (same entity)
    ↓ No external validation
    You sign withYOUR private key
    ↓ No chain of trust
    Browsers show warnings

    When to Use Self-Signed Certificates

    Good Use Cases

    Local Development

    localhost, 127.0.0.1, dev servers

    Internal Testing

    QA environments, staging servers

    Lab/Sandbox Networks

    Isolated test networks

    Learning & Experimentation

    Understanding TLS/certificates

    IoT on Private Networks

    Devices never exposed to internet

    Air-Gapped Systems

    Networks with no internet access

    Internal Tools

    With manual trust distribution

    Never Use For

    Public Websites

    Use Let's Encrypt instead (free!)

    Production APIs

    Customers can't trust your cert

    E-commerce

    Payment processors require CA certs

    Public Services

    Users see scary warnings

    Mobile Apps

    Certificate pinning is better

    Self-Signed vs Let's Encrypt

    AspectSelf-SignedLet's Encrypt
    CostFreeFree
    Browser TrustManual setupAutomatic
    Setup TimeInstantMinutes
    Works on localhostYesNo
    Works offlineYesNo
    RenewalManualAuto (90 days)
    Public websitesNeverYes
    Domain requiredNoYes

    Bottom Line: Use Let's Encrypt for anything public-facing. Use self-signed only for local development and internal/isolated environments.

    Browser Warnings (Expected!)

    Your connection is not private

    NET::ERR_CERT_AUTHORITY_INVALID

    This warning is expected and correct for self-signed certificates. The browser is warning users that no trusted CA vouched for this certificate. For development, you can proceed anyway or add the cert to your system trust store.