HTTPS přístup k 1CLICK

Pokud používáte aplikační hosting 1c2c.cz, nemusíte se o nastavení HTTPS přístupu starat. Náš hosting automaticky používá HTTPS.

Tento návod je určený pro experty, zejména IT správce.

Možnosti

Pro zajištění HTTPS přístupu k 1CLICK existují dvě alternativní metody:

  1. Předsazení serveru Apache a využití jeho podpory SSL
  2. Využití vestavěné podpory SSL serveru 1CLICK.

Pokud máte možnost, doporučujeme spíš použití metody s Apachem, která je flexibilnější.

Certifikační autorita

Pro správné fungování HTTPS budete potřebovat, aby váš certifikát s veřejným šifrovacím klíčem podepsala obecně uznávaná certifikační autorita.

Bez podepsaného certifikátu prohlížeče místo obsahu 1CLICK zobrazí uživatelům varování a pustí je dál jen po opakovaném potvrzení, že uživatelé souhlasí s bezpečnostním rizikem. Poslední generace prohlížečů jsou v této otázce velmi důsledné. V žádném případě ale nejde jen o zbytečnou zlovůli jejich výrobců. HTTPS bez certifikátu podepsaného uznávanou certifikační autoritou je totiž bezpečnostně silně zranitelné a defacto nepřináší očekávaný efekt zabezpečení.

Varování v Internet Exploreru 8 vypadá takto:

certproblem.png

Způsob vytvoření šifrovacích klíčů a podpis certifikační autoritou je v principu stejný při použití Apache nebo vestavěné podpory 1CLICK. Nicméně v obou případech se pro jednotlivé kroky používají odlišné nástroje, které zaručí, že výsledné klíče a certifikáty budou připravené ve správné podobě a formátu, které Apache a 1CLICK očekávají.

Oblíbenými certifikačními autoritami jsou např. Thawte, VeriSign, nebo RapidSSL. Služby těchto společností lze také využít zprostředkovaně skrze většinu větších poskytovatelů webhostingu.

Pomoc s přípravou certifikátu

Předplatitelům Zákaznické podpory v rámci této služby nabízíme pomoc při zajištění certifikátu.

S čím Vám pomůžeme?

  • Vygenerování šifrovacích klíčů
  • Vygenerování žádosti o certifikát (CSR)
  • Příprava souborů s klíčemi a certifikátem pro Váš 1CLICK nebo Apache

Co musíte zajistit sami?

  • Objednání certifikátu od certifikační autority (vhodného zprostředkovatele Vám rádi doporučíme)
  • Platbu za služby certifikační autority
  • Certifikační proces s vybranou autoritou, v rámci kterého autorita ověřuje, že Vaše společnost je oprávněným žadatelem o daný certifikát

Chcete pomoct? Potřebujeme od Vás:

  • Plně kvalifikované doménové jméno Vašeho serveru, na kterém 1CLICK provozujete, a pro který má být certifikát vydán, např. 1click.nasefirma.cz. Je naprosto nezbytné zde neudělat chybu! Pokud má být Váš 1CLICK viditelný uživatelům např. na adrese https://1click.nasefirma.cz/..., certifikát musí být vystaven na doménové jméno 1click.nasefirma.cz.

HTTPS pomocí Apache - podrobné instrukce

Prvním krokem je nastavení a zprovoznění proxy, která zajistí předávání požadavků ze serveru Apache na server 1CLICK. Příslušný postup je poměrně jednoduchý a je popsaný v samostatném návodu 1CLICK pod proxy Apache.

Jakmile je proxy zprovozněná, stačí vám standardním postupem zprovoznit HTTPS na serveru Apache. Postup je popsán v mnoha knihách a online dokumentacích, například zde: http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html.

Pro provoz HTTPS je nutné mít nainstalovaný a aktivovaný modul mod_ssl.

Jakmile podle návodu vygenerujete šifrovací klíče a zajistíte podpis certifikační autoritou, jádrem konfigurace SSL budou následující direktivy Apache:

SSLEngine on SSLCertificateFile /etc/ssl/certs/myserver.pem SSLCertificateKeyFile /etc/ssl/private/myserver.key

Vestavěné HTTPS 1CLICKu - podrobné instrukce

1. Vytvoření šifrovacích klíčů

Použijeme nástroj keytool, který je součástí Java8 JDK (ke stažení z webu společnosti Oracle nebo pomocí balíčkovacího systému vašeho Linuxu).

Syntax nástroje je totožný na Windows i Linuxu. Na Windows jen budete muset zapsat místo pouhého keytool celou absolutní cestu k programu, např. "C:\Program files\Java\jdk1.8.0\bin\keytool"

Následujícím zápisem vytvoříte soubor "keystore" obsahující privátní šifrovací klíč a (zatím nepodepsaný) certifikát veřejného klíče:

keytool -keystore keystore -alias jetty -genkey -keyalg RSA -keysize 2048

Nástroj keystore se vás zeptá na několik otázek.

  • Při otázce "What is your first and last name?" zadejte plně kvalifikované doménové jméno vašeho serveru, např. 1click.nasefirma.cz. Je naprosto nezbytné zde neudělat chybu. Pokud má být váš 1CLICK viditelný uživatelům např. na adrese https://1click.nasefirma.cz/..., certifikát musí být vystaven na doménové jméno 1click.nasefirma.cz.
  • Při otázce "Enter keystore password" zadejte libovolné heslo, které si zde zvolíte.
  • Při otázce "Enter password for <jetty>" zadejte stejné heslo jako v předchozím bodě

Upozornění: Je nutné si vykopírovat privátní klíč a vést ho v textové podobě.

2. Podpis certifikátu od důvěryhodné autority

Postup funguje i když tento bod přeskočíte. Nicméně dokud tento krok neprovedete, všechny prohlížeče budou upozorňovat uživatele na bezpečnostní riziko a budou se jim snažit vstup na stránky velmi otravným způsobem rozmluvit.

Konkrétní postup předepíše konkrétní certifikační autorita (Thawte, Verisign, zprostředkovatel, ...), nicméně pravděpodobně se technicky bude opírat o standardizovaný soubor "požadavek na podpis certifikátu" ("CSR", "Certificate Signing Request").

Tento soubor vytvoříte následujícím příkazem:

keytool -certreq -alias jetty -keystore keystore -file mycert.csr

Vytvořený soubor mycert.csr se předloží autoritě k podpisu. Autorita vrátí zpět podepsaný soubor mycert.crt a případně jeden nebo více tzv. "intermedite" certifikátů. Záleží na konkrétní autoritě a konkrétní úrovni certifikátu.

Pokud jste obdrželi i intermediate certifikáty (řekněme soubory interm1.pem a interm2.pem), naimportujte je do keystore pomocí následujících příkazů. Je třeba je importovat ve správném pořadí od nejvyššího (často nazývaný "primary") po nejnižší ("secondary", ...). Jako alias použijte cokoliv kromě "jetty". Pokud importujete víc intermediate certifikátů, každému dejte různý alias.

keytool -keystore keystore -import -alias ca1 -file interm1.pem keytool -keystore keystore -import -alias ca2 -file interm2.pem

Nakonec do keystoru importujte samotný certifikát mycert.crt tímto příkazem:

keytool -keystore keystore -import -alias jetty -trustcacerts -file mycert.crt

3. Úprava startovacích parametrů 1CLICK

  1. Upravte soubor config/server.xml v adresáři s daty 1CLICKu (1CLICK tento soubor vytvoří při prvním startu):
    1. Nastavt číslo portu pro HTTPS rozhraní v elementu <https_port>
      • <https_port>8000</https_port>
    2. Smažte číslo portu v elementu <http_port>:
      • <http_port></http_port>
    3. Přejmenujte certifikát na https_certifikate.pem
    4. Nastavte cestu k certifikátu v elementu <https_certificate_path> (případně ponechte výchozí config/https_certificate.pem)
    5. Přejmenujte privátní klíč v textové podobě certifikátu na https.key
    6. Nastavte cestu k privátní klíč v textové podobě certifikátu v elementu <https_key_path> (případně ponechte výchozí config/https.key)
    7. Přejmenujte certifikační autoritu na https_ca_bundle.pem
    8. Volitelně nastavte cestu k certifikátu certifikační autority v elementu <https_ca_bundle_path> (případně ponechte výchozí config/https_ca_bundle.pem})
  2. Nahrajte certifikát na cestu uvedenou v <https_certificate_path>
  3. Nahrajte podepisovací klíč certifikátu na cestu uvedenou v <https_key_path>
  4. Pokud CA dodala s certifikátem svůj certifikát, nahrajte ho na cestu nastavenou v elementu <https_ca_bundle_path>
  5. Restartuje 1CLICK, aby načetl nastavení a začal poskytovat služby přes HTTPS na nastaveném portu.