= HTTPS přístup k 1CLICK = {{{#!wiki tip Pokud používáte aplikační hosting [[http://1c2c.cz|1c2c.cz]], nemusíte se o nastavení HTTPS přístupu starat. Náš hosting automaticky používá HTTPS. }}} {{{#!wiki caution 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 1. 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 == {{{#!wiki important 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: {{attachment: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ř. [[http://www.thawte.com|Thawte]], [[http://www.verisign.com|VeriSign]], nebo [[http://www.rapidssl.com|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 == {{{#!wiki tip 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|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 [[http://httpd.apache.org/docs/2.0/mod/mod_ssl.html|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í Java6 JDK (ke stažení [[http://www.oracle.com/technetwork/java/javase/downloads/index.html|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.6.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 " zadejte stejné heslo jako v předchozím bodě === 2. Podpis certifikátu od důvěryhodné autority === {{{#!wiki tip 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 === '''Postup pro Windows''' Upravte soubor '''{{{C:\Program Files\1CLICK\bin\1click-service.xml}}}''': * Do {{{Arguments}}} přidejte XML element {{{keystore}}} uvádějící plnou cestu k souboru keystore * Do {{{Arguments}}} přidejte XML element {{{keypassword}}} uvádějící heslo ke klíči, které jste zvolili v kroku 1 Příklad upraveného souboru {{{1click-service.xml}}}: {{{ C:\1CLICKData 1029 C:\SSL\keystore mysecretkey }}} '''Postup pro Linux''' Upravte nastavení {{{ONECLICK_KEYSTORE}}} a {{{ONECLICK_KEYPASS}}} na začátku souboru '''{{{config.sh}}}''' v podadresáři {{{config}}} instalace 1CLICK: * {{{ONECLICK_KEYSTORE}}} je plná cesta k souboru keystore * {{{ONECLICK_KEYPASS}}} je heslo ke klíči, které jste zvolili v kroku 1. Příklad upravených nastavení: {{{ ONECLICK_KEYSTORE=/opt/1click/ssl/keystore ONECLICK_KEYPASS=mysecretkey }}} === 4. Restart serveru 1CLICK === Nyní restartujte server 1CLICK, aby použil nové parametry. Pokud vše proběhlo správně, po novém nastartování bude 1CLICK server poskytovat obsah protokolem HTTPS.