Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Let's Encrypt!

Let's Encrypt!

A brief introduction to Let's Encrypt, by Hugo Peixoto

Porto Codes

April 20, 2016
Tweet

More Decks by Porto Codes

Other Decks in Programming

Transcript

  1. Owned by the site administrator Private key Public key Certificate

    Domain Subject Subject public key Issuer Signature User Agent (browser) HTTPS server
  2. Owned by the CA Owned by the site administrator Private

    key Public key Certificate Domain Subject Subject public key Issuer Signature Private key Public key User Agent (browser) HTTPS server
  3. Owned by the CA Owned by the site administrator Private

    key Public key Certificate Domain Subject Subject public key Issuer Signature Certificate Subject Subject public key Issuer Signature Private key Public key User Agent (browser) HTTPS server
  4. Owned by the CA Owned by the site administrator Private

    key Public key Certificate Domain Subject Subject public key Issuer Signature Certificate Subject Subject public key Issuer Signature Private key Public key User Agent (browser) HTTPS server Ow C Su Su ke Is Si Pr Pu
  5. Owned by the CA Owned by the site administrator Private

    key Public key Certificate Domain Subject Subject public key Issuer Signature Certificate Subject Subject public key Issuer Signature Private key Public key User Agent (browser) HTTPS server
  6. Owned by the CA Owned by the site administrator Private

    key Public key Certificate Domain Subject Subject public key Issuer Signature Certificate Subject Subject public key Issuer Signature Private key Public key User Agent (browser) HTTPS server
  7. Owned by the CA Owned by the site administrator Private

    key Public key Certificate Domain Subject Subject public key Issuer Signature Certificate Subject Subject public key Issuer Signature Private key Public key User Agent (browser) HTTPS server
  8. Client sends a request to the certificate authority with: -

    Domain name to validate - Public key - Validation method
  9. Client sends a request to the certificate authority with: -

    Domain name to validate - Public key - Validation method Certificate Authority replies with a challenge token
  10. Client sends a request to the certificate authority with: -

    Domain name to validate - Public key - Validation method Certificate Authority replies with a challenge token Client sets up the validation method with the given token
  11. Client sends a request to the certificate authority with: -

    Domain name to validate - Public key - Validation method Certificate Authority replies with a challenge token Client sets up the validation method with the given token Client notifies the authority
  12. Client sends a request to the certificate authority with: -

    Domain name to validate - Public key - Validation method Certificate Authority replies with a challenge token Client sets up the validation method with the given token Client notifies the authority Certificate Authority validates the domain name
  13. Client sends a request to the certificate authority with: -

    Domain name to validate - Public key - Validation method Certificate Authority replies with a challenge token Client sets up the validation method with the given token Client notifies the authority Certificate Authority validates the domain name If successful, sends back a certificate to the client for the validated domain
  14. FAQ

  15. FAQ • Wildcard certificate support? ◦ Validation is a bit

    harder, not supported by the spec yet. • Mitigation against MITM in the validation step? ◦ ACME spec recommends checking the connection from multiple vantage points to reduce this risk • nginx support? ◦ Currently in experimental phase