SSL certifikát pro více domén na jedné IP/VPS

Chtěl jsem pro svůj eshop Krutý Vohoz a pak ještě pro Steam Kitty zajistit SSL certifikát. Nakonec jsem si koupil Multi cosi pro tři domény (+tento blog :)) na stránkách SSLS.cz za 419 Kč na rok, bylo to levnější než dva samostatné certifikáty pro dvě domény. Problém byl ale s instalací, jak to vyřešit, když mám jeden VPS s jednou IP. Pomohla mi nápověda na jejich webu, a moje řešení bych vám chtěl já, samozvaný UNIX server expert, ukázat. Celé se to dá nastavit v /etc/apache2/sites-available. Budu nastavovat SSL pro domény skoula.cz, krutyvohoz.cz a steamkitty.com. Na serveru budou ale i nezapezpečené domény s klasickým http://. Nejprve vám ukážu soubor s virtual hostem pro běžnou doménu, bez SSL (tedy http://). Je to easy, doména dogpee.net a nastavený DocumentRoot.

<VirtualHost *:80>
    ServerName dogpee.net
    ServerAlias www.dogpee.net
    DocumentRoot /var/www/dogpee.net
</VirtualHost>

Pak tu máme virtualhost pro doménu, kterou sice chceme zabezpečit SSL certifikátem, ale potřebujeme, aby fungovala i bez něj, tedy pod běžným http://. Doména skoula.cz, přesměrujeme ji na https://skoula.cz.

<VirtualHost *:80>
    ServerName skoula.cz
    ServerAlias www.skoula.cz
    RewriteEngine on
    RewriteRule (.*) https://skoula.cz%{REQUEST_URI}
</VirtualHost>

A teďka musíme vyřešit samotné požadavky na https://. Tady už je ale problém, protože (omlouvám se za polopatismus/nepravdy, ale tak si to představuji), na jedné IP nelze provozovat více SSL domén, protože prohlížeč musí nejprve navázat SSL spojení a až pak pozná, o kterou doménu se jedná. Takže: Vytvoříme si soubor s jedním VirtualHostem, který obhospodařuje všechny domény zabezpečené SSL. Ten už je trochu delší. Důležitá je hlavička, kde specifikujeme IP serveru a port 443 (na rozdíl od klasického 80). Pak uvedeme ServerName a ServerAlias, ve kterém vyjmenujeme všechny domény, které chceme zabezpečit SSL, včetně jejich www. variant. Následně uvedeme cestu k certifikátu, intermediate certifikátu a privátnímu klíči, obsah těchto souborů viz nápověda na odkazu výše. A pak už specifikujeme jednotlivé domény a přesměrováváme požadavky do složek s weby, akorát místo DocumentRoot nastavíme přesměrování pomocí RewriteRule. Takže finta je v tom, že máme jeden VirtualHost pro všechny SSL weby a až v něm přesměrováváme požadavky do složek s weby.

<VirtualHost 1.2.3.4:443>
 ServerName www.skoula.cz
 ServerAlias skoula.cz steamkitty.com www.steamkitty.com krutyvohoz.cz www.krutyvohoz.cz 
 SSLEngine on
 SSLProtocol all
 SSLCertificateFile /cesta/k/server.cer 
 SSLCACertificateFile /cesta/k/intermediate.cer 
 SSLCertificateKeyFile /cesta/k/private.key 

 RewriteEngine on

 RewriteCond %{HTTP_HOST} ^(www\.)?skoula\.cz
 RewriteCond %{REQUEST_URI} !^/var/www/skoula.cz
 RewriteRule ^(.*) /var/www/skoula.cz/$1

 RewriteCond %{HTTP_HOST} ^(www\.)?steamkitty\.com
 RewriteCond %{REQUEST_URI} !^/var/www/steamkitty.com
 RewriteRule ^(.*) /var/www/steamkitty.com/$1

 RewriteCond %{HTTP_HOST} ^(www\.)?krutyvohoz\.cz
 RewriteCond %{REQUEST_URI} !^/var/www/krutyvohoz.cz
 RewriteRule ^(.*) /var/www/krutyvohoz.cz/$1
</VirtualHost>

Chtěl bych ještě dodat, že toto řešení není nejlepší, došel jsem na něj metodou pokus/omyl, ale funguje. Každý soubor s VirtualHostem nezapomeňte aktivovat příkazem:

a2ensite soubor

A po každé změně restartovat Apache. Hezký den.

Moje láska k DámeJídlo.cz

Když občas přemýšlím, čím si zvednout náladu po těžkém dni a co sníst, vzpomenu si na damejidlo.cz a začnu slintat. To je tak boží stránka. Dokážu tam strávit i více než hodinu procházením restaurací a přemýšlením nad tím, co si dám.

Navíc mají perfektní péči o zákazníky. Při předposlední objednávce nám jídlo dovezli se spožděním asi 15 minut a obdržel jsem tak 100 Kč jako omluvu v kreditech. To spolu s akcí 1+1 pizza zdarma v restauraci Pizzeria la Botte znamená neuvěřitelné hody za cca 50 Kč. Btw, tak dobré pizzy jako od nich jsem ještě neměl.

A nejlepší na tom je to, že tenhle článek není PR ani affil, prostě jsem se s vámi chtěl podělit o moji tajnou úchylku. Samozřejmě to není náhrada romantických večeří, ale takový bonus :)

JavaScript Enlightenment – recenze

9781449342883Stal se ze mě knihomol a za poslední měsíc jsem přečetl více knih, než za poslední 3 roky. Sociologii nepočítaje, tak je to Moby Dick v dětské edici a JavaScript Enlightenment, alias osvícenství, od autora Cody Lindleyho, o kterém vám nyní něco povím :)

Je to anglická knížka o detailech Javascriptových objektů. Když jsem si ji objednával, myslel jsem, že to bude komplet o něčem jiném. Nicméně je to o tom, že vše v Javascriptu jsou objekty a jak s nimi pracovat. Dojalo mě jen to, že v půlce knihy pojednává autor o konstruktorech String(), Number() atd, aby mi pak ke konci poradil, abych raději používal primitivní notaci místo zbytečného vytváření objektů. Ok. Ale je to zajímavý náhled do útrob, cituji “From Library User to JavaScript Developer“.

Nové směřování Krutého Vohozu

Rozhodl jsem se kompletně předělat KrutýVohoz, zaměřil jsem ho úzce na metalové oblečení, rozdělené podle jednotlivých kapel. Věřím, že se to pak bude mnohem lépe cíleně propagovat. Zatím je v nabídce asi 70 produktů od 4 kapel, mám nachystaných asi dalších 10 kapel i s popiskem (od kamaráda metalisty), ale není čas a hlavně chuť plnit eshop. Ono to ale přijde, mám vždy takové období, že mě jedna věc omrzí a začnu dělat jinou a pak se k tomu vrátím.

Krutý Vohoz logo

Celkem bude asi problém s tím, že jsou to origininální produkty, s 2x až 3x větší cenou, než metalové oblečení z tržnic na koncertech. Ale snad si to najde své příznivce.

Jak pokračuje vývoj Steam Kitty?

Slibně, zhruba po měsíci jsem se do toho zase opřel a pomaluji finišuji. Zbývá vytvořit několik dalších pozadí a najít vhodnou hudbu a zvuky. A samozřejmě poladit herní nastavení a odstranit některé bugy, které se objevují na Androidech.

Pokud má někdo zájem o alfatesting, budu neskonale vděčný za váš feedback. Stačí napsat do komentářů :)

Přikládám několik trapných screenshotů. Stále ještě hledám ten správný “feeling” nedbalé grafiky, uvidíme, co ještě stvořím. Zatím můžete dát like Facebook stránce.

screen4 screen5