SSL/TLS certifikáty a HTTPS

Běžná komunikace po internetu probíhá nešifrovaně, spojení mezi počítači lze jednoduše odposlouchávat. Pomocí SSL/TLS certifikátů se komunikace mezi počítačem uživatele a serverem, na kterém běží webové stránky, šifruje a nemůže tak být odposlouchávána nebo cestou modifikována.

Návštěvníci webových stránek díky tomu mají jistotu, že data, která serveru předávají (jména, hesla, čísla platebních karet atd.), poskytují pouze provozovateli stránek a žádná třetí osoba k nim při komunikaci nemůže získat přístup.

Zároveň s použitím HTTPS není možné, aby např. free wifi hotspot do webových stránek bez vědomí provozovatele stránky a bez vědomí návštěvníka vkládal vlastní nevyžádaný obsah např. reklamu nebo škodlivý kód.

Stránku zabezpečenou pomocí HTTPS v prohlížečích poznáte podle zelené ikony zámku


Pro více informací a konkrétní nabídku certifikátů SSL od ACTIVE 24 se podívejte na www.ca.cz.  
 

Let's Encrypt zdarma

Ke každému Linux hostingu zajišťujeme bezplatně a plně automaticky certifikát od certifikační autority Let's Encrypt. Tyto certifikáty jsou v prohlížečích důvěryhodné a mohou být využity pro plnohodnotné zabezpečení webu.

Vystavený certifikát je platný 3 měsíce a je v pravidelných intervalech automaticky obnovován. Odpadá tak starost s aktualizací certifikátu, které se běžně instalují manuálně.
 

Upozornění: Certifikáty Let's Encrypt poskytujeme formou best-effort. Děláme maximum pro to, aby byl certifikát pro web od externí autority zajištěn a pravidelně obnovován, avšak na tuto službu není poskytována žádná záruka. Proto pro důležité weby, jejichž provoz je na validním certifikátu závislý, doporučujeme používat certifikáty komerční. Např. certifikáty s EV (extended validation) poskytují nejvyšší stupeň ověření a v adresním řádku prohlížeče je pak uveden i název společnosti vlastníka domény, čímž zvyšuje důvěryhodnost stránek.


Podmínky pro poskytování Let's Encrypt certifikáty u ACTIVE 24:

  • Generují se pro hlavní název webu i aliasy. Později doplněné aliasy jsou do certifikátu automaticky přidány v řádu několika hodin.
  • Nevydávají se pro hvězdičkové aliasy např. *.active24.cz, místo něj generujeme jen www variantu www.active24.cz. Pokud potřebujete certifikát pro nějakou neuvedenou subdoménu, je potřeba mít nastaven alias s konkrétním jménem.
  • Podmínkou získání certifikátu je správně nastavený DNS záznam směřující na správný hosting server u ACTIVE 24.
  • Let's Encrypt nepodporuje tzv. IDN domény (s diakritikou). Pro takové domény se certifikát nevystaví.
  • Domény se ověřují v databázích obsahujících informace o malwaru. Pokud je zvolená doména na takovém seznamu nalezena, certifikát nebude vystaven.
  • Do jednoho certifikátu není možné nastavit více než 100 aliasů.
  • Při zřízení hostingu je nejprve vygenerován self-signed certifikát a až následně se provede nahrazení za certifikát Let's Encrypt. Může trvat i několik hodin a musí být splněny všechny zmíněné podmínky, než je certifikát vystaven.
  • Dojde-li k nahrání vlastního certifikátu přes zákaznické centrum, nebudou již prováděny žádné pokusy o jeho nahrazení certifikátem Let's Encrypt. Obnovování jiného certifikátu je zcela v režii zákazníka. Pokud byste si přáli zajišťování certifikátu Let's Encrypt obnovit, kontaktujte zákaznickou podporu.

CSR (Certificate Signing Request)

Pro vystavení SSL/TLS certifikátu je potřeba tzv. CSR (Certificate Signing Request). Jedná se o soubor, který obsahuje informace o žadateli a vychází z privátního klíče serveru. CSR vždy generuje správce serveru. 

CSR pro hosting poskytovaný Active24 s operačním systémem Linux lze vygenerovat ze zákaznického centra (postup naleznete v článku Instalace certifikátu), nebo nás můžete požádat o vygenerování CSR pomocí autorizovaného požadavku. Společně s touto žádostí uveďte níže popsané údaje.

Jak vygenerovat CSR?

  1. Přihlaste se do Zákaznického centra.
  2. Zvolte linuxový hosting, na kterém si přejete certifikát nainstalovat (Server a hosting / Přehled serverů/ Detail zvoleného serveru).
  3. Nastavení serveru pod kategorii Nastavení služeb vstupte do detailu možnosti SSL/TLS certifikátu
  4. Samotnou tvorbu CSR spustíte zvolením možnosti Vygenerovat CSR.
  5. V dalším kroku vyplníte údaje, které má budoucí SSL/TLS certifikát obsahovat (vyplňte bez diakritiky).
  6. CSR klíč si můžete stáhnout ve formátu .TXT do svého zařízení.

Podrobný postup:

  1. Pomocí svých přihlašovacích údajů se přihlaste do Zákaznického centra. Případně si můžete požádat o zaslání zapomenutého hesla.
  2. Po přihlášení zvolte v menu položku Server a hosting (1), automaticky se vybere Přehled serverů (2). V přehledu vyberte Detail (3) linuxového hostingu, na který si přejete certifikát nainstalovat.
  3. Nastavení serveru (4) pod kategorii Nastavení služeb vstupte do Detailu (5) možnosti SSL/TLS certifikátu
  4. Samotnou tvorbu CSR spustíte zvolením možnosti Vygenerovat CSR (6). V dalším kroku je nutné vyplnit údaje, které bude certifikát obsahovat.
Doména (Common Name): Doménový název, pro který má být certifikát vystaven, rozlišuje se i doména bez a s WWW. 
                      (nejčastěji jsou certifikáty objednávány na doménu s www).

Název organizace (Organisation): Název společnosti, pro kterou má být certifikát vystaven.

Organizační jednotka (Organisation Unit): Název pobočky společnosti (nejedná se o povinný údaj).

Město nebo obec (Locality): Město

Země (Country): Kód země, zadávejte pouze velkými písmeny (např. CZ)

Územní celek (State): Stát
Upozornění: V uváděných údajích nepoužívejte diakritiku, jedná se o údaje, které musí být zpětně dohledatelné.


Postup pro vygenerování CSR na vlastním serveru můžete nalézt na stránkách Thawte:

Apache 

Microsoft IIS 7 


Ověření certifikátu


Před samotným vystavením certifikátu požaduje certifikační autorita ověření vlastníka. Bez tohoto ověření nedojde k vystavení bezpečnostního certifikátu!

Způsob ověření se odvíjí od typu certifikátu. Buď se ověřuje pouze pomocí potvrzovacího odkazu nebo může dojít i k telefonickému ověření

Na adrese ca.cz můžete vybrat certifikát podle ověření. Obecně se dá tvrdit, že čím komplexnější ověření organizace proběhne, tím důvěryhodnější certifikát je.

Například platební portály mohou vyžadovat využití certifikátu u kterého se ověří společnost telefonicky.

 

Domain Validation - Ověření domény (DV)

Ověřuje se tak, že si zákazník vybere e-mail z admin, administrator@, webmaster@, hostmaster@ nebo postmaster@domena.xy.

Jiný e-mail zvolit nelze. Certifikační autorita zašle e-mail na zvolenou adresu a pomocí odkazu v emailu doménu potvrdíte.
 

Organisation Validation - Ověření společnosti (OV)

Certifikační autorita kontroluje společnost, na kterou je certifikát objednaný, dohledává ji ve veřejně dostupných telefonních seznamech, 1188.cz a zlatestranky.cz pro ČR, kde lze dohledat telefonní číslo společnosti, na kterém je objednávka certifikátu ověřena

Hovory probíhají výhradně v angličtině. Společnost uvede do telefonu kód, který musí potvrdit v e-mailu. Dále ještě dochází k ověření zda se společnost, na kterou je certifikát vydán, shoduje s držitelem domény.
 

Extended Validation – Rozšířené ověření (EV)

Probíhá stejně jako ověření společnosti, ale je mnohem důkladnější. Proto může ověření trvat déle.

Informace jsou získávány z více zdrojů a vyžaduje se zaslaní ověřených dokumentů.

Certifikační autorita zákazníka kontaktuje na jeho e-mail, kde ho informuje, co všechno bude pro ověření potřeba.

Dále se rovněž ověřuje zaměstnanecký poměr člověka, který je uveden jako administrativní kontakt v certifikátu.

 


 

Instalace certifikátu

Všechny sdílené virtuální servery s operačním systémem Linux podporují funkci auto-SSL. Díky tomu máte u svého webu aktivní přístup přes zabezpečený HTTPS protokol ihned po zřízení hostingu.

Na linuxový virtuální server je nejprve vygenerován self-signed certifikát a poté se systém v pravidelných intervalech pokouší certifikát nahradit důvěryhodným od Let's Encrypt. To může trvat několik hodin a je nutné splňovat podmínky pro poskytnutí Let's Encrypt (především mít doménu v DNS nasměrovanou na tento hosting).

Self-signed i Let's Encrypt certifikát lze kdykoliv nahradit libovolným jiným komerčním certifikátem, v takovém případě přebírá zodpovědnost za pravidelnou a včasnou aktualizaci certifikátu uživatel serveru.

Certifikáty jsou na našich Linuxových serverech nainstalované metodou SNI, kdy je na jedné IP adrese nainstalováno více certifikátů. Objednávku IP adresy provedete Autorizovaným požadavkem, případně pod tlačítkem Zobrazit, kde najdete volbu Objednat vyhrazenou IP adresu.

V detailu virtuálního serveru v Zákaznickém centru v sekci Server a hosting / Přehled serverů/ Detail zvoleného serveru / Nastavení serveru se u položky SSL/TLS certifikát zobrazuje základní informace o aktuálně nainstalovaném certifikátu. Uvidíte zde vydavatele certifikátu, datum jeho expirace a další možnosti správy SSL/TLS.


Jak nainstalovat SSL/TLS certifikát?

  1. Přihlaste se do Zákaznického centra.
  2. Zvolte linuxový hosting, na kterém si přejete certifikát nainstalovat (Server a hosting / Přehled serverů/ Detail zvoleného serveru).
  3. Nastavení serveru pod kategorii Nastavení služeb vstupte do detailu možnosti SSL/TLS certifikátu
  4. Samotnou instalaci SSL/TLS certifikát spustíte zvolením možnosti Nahrát certifikát.
  5. Do textového pole vložte celý certifikát včetně ohraničení -----BEGIN CERTIFICATE----- a -----END CERTIFICATE-----
  6. Některé certifikáty mohou vyžadovat vložení i tzv. intermadiate certifikátu (ten je obsažen v souboru certifikátu).
  7. Jakmile je certifikát nainstalován, je nutné zajistit přesměrování na protokol HTTPS.


Podrobný postup:

  1. Pomocí svých přihlašovacích údajů se přihlaste do Zákaznického centra. Případně si můžete požádat o zaslání zapomenutého hesla.
  2. Po přihlášení zvolte v menu položku Server a hosting (1), automaticky se vybere Přehled serverů (2). V přehledu vyberte Detail (3) linuxového hostingu, na který si přejete certifikát nainstalovat.
  3. Nastavení serveru (4) pod kategorii Nastavení služeb vstupte do Detailu (5) možnosti SSL/TLS certifikátu
  4. Samotnou instalaci SSL/TLS certifikát spustíte zvolením možnosti Nahrát certifikát (6). Do textového pole (7) vložte celý kód certifikátu nebo využijte možnost nahrání Ze souboru.
    UPOZORNĚNÍ: Certifikát vkládejte včetně ohraničení -----BEGIN CERTIFICATE----- a -----END CERTIFICATE-----
  5. Instalaci zvoleného certifikátu je nutné potvrdit tlačítkem Nahrát a zvalidovat (8). Některé certifikáty mohou vyžadovat vložení tzv. intermadiate certifikátu (bývá obsažen v souboru certifikátu) nebo vložení privátního klíče serveru - ten je vyžadován v případě, že byl certifikát původně vystaven pro jiný fyzický server.
  6. Jakmile doplníte potřebné klíče, dojde k instalaci SSL certifikátu a web může využívat protokol https. Aby došlo k zabezpečenému spojení je nutné ještě zajistit přesměrování na protokol HTTPS.

 


Implementace HTTPS a přesměrování na Linux hostingu

V zákaznickém centru můžete pomocí volby Přesměrování na HTTPS svůj web na  HTTPS přesměrovat jedním kliknutím.

Přesměrování stále můžete nastavit úpravou .htaccess souboru na serveru, nebo v zákaznickém centru Editace souboru htaccess.

Přesměrování na HTTPS:

  1. Přihlaste se do Zákaznického centra.
  2. Zvolte linuxový hosting, na kterém si přejete přesměrování na https:// aktivovat (Server a hosting / Přehled serverů/ Detail zvoleného serveru).
  3. Nastavení serveru pod kategorii Nastavení služeb vstupte do detailu Přesměrování na HTTPS, kde se zobrazí se následující možnosti:
     
    Podle nastavení serveru (výchozí nastavení) - přesměrování je vypnuté, ale v budoucnu může být 
                                                  po oznámení ze strany ACTIVE 24 zapnuto.
    
    Vypnuto - přesměrování je vypnuté a ani v budoucnu nebude ze strany ACTIVE 24 zapínáno
    
    Zapnuto základní přesměrování - všechny požadavky jsou přesměrovány na HTTPS. Neřeší se 
                                    tzv. mixed content, pokud se web snaží např. css styly 
                                    nebo javascripty načítat po HTTP, v některých prohlížečích 
                                    nebudou načteny/zobrazeny.
    
    Zapnuto a řeší mixed content - všechny požadavky jsou přesměrovány na HTTPS a zároveň je prohlížeč 
                                   informován, že má po HTTPS načítat všechny prvky vložené do stránky, 
                                   tím se zabrání problémům s tzv. mixed content. Nenačtou se ale prvky 
                                   stránky načítané z jiných webů, které HTTPS nepodporují.


HTTPS je na Linux hostingu implementováno (stejně jako HTTP) pomocí reverzní proxy Nginx, která provádí tzv. TLS offloading.

Provoz mezi Nginx a Apache už se nešifruje a Apache se o šifrování dozví jen přeneseně. Z toho plynou následující omezení pro aplikace, které se snaží ověřovat, zda se na ně přistupuje přes zabezpečené HTTPS.

- detekce v PHP pomocí proměnné $_SERVER['HTTPS'] !='on' je plně funkční
- proměnná $_SERVER['SERVER_PORT'] obsahuje i při použití HTTPS číslo 80
- detekce v souboru .htaccess pomocí pravidel "RewriteCond %{SERVER_PORT} !^443$" a "RewriteCond %{HTTPS} !on" není funkční! Port v těchto případech bude vždy 8x, dle verze PHP a proměnná HTTPS je vždy Off. Místo proměnné %{HTTPS} je pro detekci potřeba používat proměnnou %{HTTP:X-Forwarded-Proto}.


Přesměrování pomocí .htaccess:

Přesměrování na HTTPS pomocí .htaccess se zachováním zpětné kompatibility doporučujeme provádět následujícími podmínkami:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]
Header set Content-Security-Policy "upgrade-insecure-requests;"

Přidaná hlavička s hodnotou "upgrade-insecure-requests" zajistí řešení tzv. mixed contentu.


Implementace HTTPS a přesměrování na Windows hostingu

Na Windows hostingu si nejprve musíte objednat certifikát. Automatické certifikáty Let's Encrypt zde zatím nejsou k dispozici.

Jakmile máte certifikát nainstalovaný, přesměrování na HTTPS provedete pomocí souboru web.config následovně:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
  <rewrite>
     <rules>
       <rule name="Redirect to https" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
           <match url="*" negate="false" />
           <conditions logicalGrouping="MatchAny">
               <add input="{HTTPS}" pattern="off" />
           </conditions>
           <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
       </rule>
     </rules>
  </rewrite>
    <httpProtocol>
        <customHeaders>
            <add name="Content-Security-Policy" value="upgrade-insecure-requests;" />
        </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Přidaná hlavička s hodnotou "upgrade-insecure-requests" zajistí řešení tzv. mixed contentu.

Pro podrobnější možnosti konfigurace doporučujeme dokumentaci web.config souboru.