let's encrypt client deployment challenges, pycon sweden 2016

19
LET'S ENCRYPT CLIENT... LET'S ENCRYPT CLIENT... LET'S ENCRYPT CLIENT... LET'S ENCRYPT CLIENT... LET'S ENCRYPT CLIENT... LET'S ENCRYPT CLIENT... ...AND THE CHALLENGES WITH WILDLY HETEROGENOUS DEPLOYMENT ENVIRONMENTS 2016 Joona Hoikkala ( ) PyCon Sweden @joohoi

Upload: joona-hoikkala

Post on 20-Jan-2017

122 views

Category:

Software


1 download

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