Transcript
Page 1: Let's Encrypt client deployment challenges, PyCon Sweden 2016

LET'SENCRYPTCLIENT...LET'SENCRYPTCLIENT...LET'SENCRYPTCLIENT...LET'SENCRYPTCLIENT...LET'SENCRYPTCLIENT...LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...

LET'SENCRYPTCLIENT...LET'SENCRYPTCLIENT......ANDTHECHALLENGESWITHWILDLY

HETEROGENOUSDEPLOYMENTENVIRONMENTS2016

JoonaHoikkala( )

PyConSweden

@joohoi

Page 2: Let's Encrypt client deployment challenges, PyCon Sweden 2016

LET'SENCRYPTLET'SENCRYPTLET'SENCRYPTLET'SENCRYPTLET'SENCRYPTLET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPT

LET'SENCRYPTLET'SENCRYPTTHEAMBITIOUSPLANTOENCRYPT100%OFTHEWEB!

Page 3: Let's Encrypt client deployment challenges, PyCon Sweden 2016

HOWAREWEDOING?Currently 3,112,302 certificatesissued.

Outofwhichroughly twomillion arecurrentlyactive!

Page 4: Let's Encrypt client deployment challenges, PyCon Sweden 2016

UNDERTHEHOODLet'sEncryptCAspeaksAutomatedCertificateManagement

Environmentprotocol- ACME forshort.

OnlyDV,nowildcards,upto100domainsin SAN .

Shortlived- 90d expiration.

Page 5: Let's Encrypt client deployment challenges, PyCon Sweden 2016

OBTAININGCAresolvesIPaddressesofyourdomain(s)frommultiple

locations,andproceedsbyissuingachallenge.

Challengetypes:

tls-sni-01http-01dns-01

Page 6: Let's Encrypt client deployment challenges, PyCon Sweden 2016

AUTOMATIONISTHEKEYShortlifetimes.

Renewingusedtobeannoying.

Keepingupwiththebestpractices.

Page 7: Let's Encrypt client deployment challenges, PyCon Sweden 2016

THEOFFICIALCLIENTAuthenticator / Installer pluginarchitecture.

Easyrenewal.Clientsavesyourconfiguration,andwheninitiated,checksallyouractivecertificates,and renews

(only)theonesexpiringsoon.

Page 8: Let's Encrypt client deployment challenges, PyCon Sweden 2016

PLUGINFLAVORSManual

Standalone

Webroot

Apache

nginx

Page 9: Let's Encrypt client deployment challenges, PyCon Sweden 2016

CONFIGURATIONCONFIGURATIONCONFIGURATIONCONFIGURATIONCONFIGURATIONCONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATIONCONFIGURATIONCHALLENGESINPARSING&MANAGEMENT

Page 10: Let's Encrypt client deployment challenges, PyCon Sweden 2016

THOUSANDANDONEDISTRIBUTIONS......withdifferent packagemanagers .

...withdifferent configurationparadigms .

...withdifferentwaystodetermine flavor .

Page 11: Let's Encrypt client deployment challenges, PyCon Sweden 2016

...PACKAGEMANAGERSDifferenthooks&packagenamesperdistributionfor

dependencies andkeepinguptodate.

OS packaging naturallyongoing,butwe'renew.

Page 12: Let's Encrypt client deployment challenges, PyCon Sweden 2016

...CONFIGURATIONPARADIGMSUsing apache asanexample.

Prettymucheverymajordistributionisusingadifferentone.

Notonlythe VirtualHost configs,but controlscripts etc.aswell.

Page 13: Let's Encrypt client deployment challenges, PyCon Sweden 2016

...OSDETECTIONlsb_release,redhat-release,sles-release...

platform.linux_distribution()is deprecated ,andgoingtogetremoved in3.7

Page 14: Let's Encrypt client deployment challenges, PyCon Sweden 2016

HOWWE'REHANDLINGITHOWWE'REHANDLINGITHOWWE'REHANDLINGITHOWWE'REHANDLINGITHOWWE'REHANDLINGITHOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGIT

HOWWE'REHANDLINGITHOWWE'REHANDLINGIT

Page 15: Let's Encrypt client deployment challenges, PyCon Sweden 2016

BOOTSTRAPPINGInstallingtheospackagedependencies

Bootstrappingthe virtualenv forclient.

pip8 incorporatingfunctionalityof peep .

Page 16: Let's Encrypt client deployment challenges, PyCon Sweden 2016

LINUXDISTRIBUTIONFINGERPRINTINGSystemd /etc/os-release

VERSION_ID and ID .

Abletoidentifyminorforksofdistributionsby LIKE

Page 17: Let's Encrypt client deployment challenges, PyCon Sweden 2016

CONFIGURATIONPARSINGAugeas -librarywritteninC,withpythonbindings.

Supportswidevarietyofdifferentconfigurationformats,andlocationsthroughtemplatescalled lenses

Createsa DOM liketreestructurerepresentation.

Uses XPath conventionformatching.

Page 18: Let's Encrypt client deployment challenges, PyCon Sweden 2016

PARSINGANDWRITINGCONFIGFILESAugeasallowsustohopintorelevant IfDefine statements,

ie.smartparsing.

Findoutwhichfilehas ServerName / ServerAlias fordomainwe'reinstallingthecertificatefor.

Provideseasywaytowriteto,andsavethemodifiedfiles.

Page 19: Let's Encrypt client deployment challenges, PyCon Sweden 2016

QUESTIONS?-Let'sEncryptclient

-Let'sEncryptproject

-Let'sEncryptCA

-ACME

-Augeas

/[email protected]

https://github.com/certbot/certbot

https://letsencrypt.org

https://github.com/letsencrypt/boulder

https://tools.ietf.org/html/draft-ietf-acme-acme-02

http://augeas.net

@joohoi


Top Related