let's encrypt client deployment challenges, pycon sweden 2016

Post on 20-Jan-2017

122 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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!

HOWAREWEDOING?Currently 3,112,302 certificatesissued.

Outofwhichroughly twomillion arecurrentlyactive!

UNDERTHEHOODLet'sEncryptCAspeaksAutomatedCertificateManagement

Environmentprotocol- ACME forshort.

OnlyDV,nowildcards,upto100domainsin SAN .

Shortlived- 90d expiration.

OBTAININGCAresolvesIPaddressesofyourdomain(s)frommultiple

locations,andproceedsbyissuingachallenge.

Challengetypes:

tls-sni-01http-01dns-01

AUTOMATIONISTHEKEYShortlifetimes.

Renewingusedtobeannoying.

Keepingupwiththebestpractices.

THEOFFICIALCLIENTAuthenticator / Installer pluginarchitecture.

Easyrenewal.Clientsavesyourconfiguration,andwheninitiated,checksallyouractivecertificates,and renews

(only)theonesexpiringsoon.

PLUGINFLAVORSManual

Standalone

Webroot

Apache

nginx

CONFIGURATIONCONFIGURATIONCONFIGURATIONCONFIGURATIONCONFIGURATIONCONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATION

CONFIGURATIONCONFIGURATIONCHALLENGESINPARSING&MANAGEMENT

THOUSANDANDONEDISTRIBUTIONS......withdifferent packagemanagers .

...withdifferent configurationparadigms .

...withdifferentwaystodetermine flavor .

...PACKAGEMANAGERSDifferenthooks&packagenamesperdistributionfor

dependencies andkeepinguptodate.

OS packaging naturallyongoing,butwe'renew.

...CONFIGURATIONPARADIGMSUsing apache asanexample.

Prettymucheverymajordistributionisusingadifferentone.

Notonlythe VirtualHost configs,but controlscripts etc.aswell.

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

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

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

BOOTSTRAPPINGInstallingtheospackagedependencies

Bootstrappingthe virtualenv forclient.

pip8 incorporatingfunctionalityof peep .

LINUXDISTRIBUTIONFINGERPRINTINGSystemd /etc/os-release

VERSION_ID and ID .

Abletoidentifyminorforksofdistributionsby LIKE

CONFIGURATIONPARSINGAugeas -librarywritteninC,withpythonbindings.

Supportswidevarietyofdifferentconfigurationformats,andlocationsthroughtemplatescalled lenses

Createsa DOM liketreestructurerepresentation.

Uses XPath conventionformatching.

PARSINGANDWRITINGCONFIGFILESAugeasallowsustohopintorelevant IfDefine statements,

ie.smartparsing.

Findoutwhichfilehas ServerName / ServerAlias fordomainwe'reinstallingthecertificatefor.

Provideseasywaytowriteto,andsavethemodifiedfiles.

QUESTIONS?-Let'sEncryptclient

-Let'sEncryptproject

-Let'sEncryptCA

-ACME

-Augeas

/joona@kuori.org

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