--- marp: true theme: gaia backgroundColor: #fff backgroundImage: url('img/hero-background.svg') --- #


:shield: Certyfikaty TLS :shield: --- # HTTPS - HyperText Transfer Protocol Secure - [HTTPS](https://en.wikipedia.org/wiki/HTTPS) - wersja protokołu HTTP wykorzystująca szyfrowanie - wykorzystuje protokół [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) - Transport Layer Security - wymaga certyfikatu TLS oraz klucza prywatnego - certyfikat może być wystawiony przez [CA](https://en.wikipedia.org/wiki/Certificate_authority) - Certificate Authority lub samodzielnie - wykorzystuje szyfrowanie symetryczne oraz asymetryczne - zabezpiecza przez atakami typu *Man in The Middle* --- # TLS - Transport Layer Security - na początku połączenia odbywa się proces [TLS Handshake](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake) - w trakcie procesu następuje: - weryfikacja certyfikatu - ustalenie algorytmów szyfrowania - wymiana kluczy - podczas wymiany danych, pakiety TCP są zaszyfrowane --- # Certyfikat TLS - certyfikat zawiera: - klucz publiczny - dane o właścicielu - dane o CA - datę ważności - można go uzyskać samodzielnie lub za pośrednictwem CA - może być pozyskany za darmo lub za opłatą - opcja bezpłatna: [Let's Encrypt](https://letsencrypt.org/) --- # Let's Encrypt - [Let's Encrypt](https://letsencrypt.org/) - organizacja non-profit wystawiająca bezpłatnie certyfikaty TLS - certyfikaty ważne są przez 90 dni - aby pozyskać lub odnowić certyfikat, należy udowodnić, że jesteśmy właścicielem domeny, poprzez: - dodanie określonego pliku do serwera - dodanie rekordu DNS - proces pozyskania oraz odnowienia certyfikatu może być zautomatyzowany poprzez narzędzie [Certbot](https://certbot.eff.org/)