Create your own certification authority and your own self-signed certificates with a completed Subject Alternative Name (functional in Chrome 58+)

In this short article, we’ll show you how to generate your own certification authority and how to sign a self-signed certificate with this certification authority and with completed subjectAltName (Subject Alternative Name) to make it works in Chrome 58 or higher. The main reason for this is mostly for the development, when we want to establish a https connection locally and want it to be trusted. But we can generate this certificates also for intranet domains and, in the worst case, for public domains too.

Pokračování textu Create your own certification authority and your own self-signed certificates with a completed Subject Alternative Name (functional in Chrome 58+)

Vytvoření vlastní certifikační autority a tvorba vlastních self-signed certifikátů s vyplněným Subject Alternative Name (funkční v Chromu 58+)

V tomto krátkém článku si ukážeme, jak si vygenerovat vlastní certifikační autoritu a s její pomocí podepisovat vlastní self-signed certifikáty, které budou mít vyplněné subjectAltName (Subject Alternative Name) a díky tomu budou v pořádku fungovat v Chromu 58 a vyšším. Hodit se vám to bude hlavně pro vývoj, kdy si chceme lokálně zprovoznit https připojení a chceme, aby se tvářilo jako důvěryhodné. Ale případně si takto můžeme generovat certifikáty třeba i pro intranetové domény a v nejhorším případě i pro veřejné domény.

Pokračování textu Vytvoření vlastní certifikační autority a tvorba vlastních self-signed certifikátů s vyplněným Subject Alternative Name (funkční v Chromu 58+)

Deploy PHP applications with zero downtime and under (heavy) load

(This text was originally written in 2014) In the following few paragraphs I would like to share with you our experience we have gained while implementing the „bulletproof“ deploy of our PHP application on one of the most visited Czech web server. If you run a small web that serves only few requests per second, you probably will know nothing important. However, if you run a larger service with about 100 requests per second (at the peak) and the application is running on the multiple web servers, like ours, deploy often and you like it, and on the other hand, you don’t like loosing requests like us, then I believe the following text might be interesting to you.

Pokračování textu Deploy PHP applications with zero downtime and under (heavy) load

Deploy PHP aplikací, bez výpadku a pod (velkou) zátěží

V následujících pár odstavcích bych se s vámi rád podělil o zkušenosti, které jsme nasbírali při implementaci „neprůstřelného“ deploye naší PHP aplikace na jednom z nejnavštěvovanějších českých serverů. Pokud provozujete malý webík, který obslouží jednotky requestů za sekundu, nedozvíte se pravděpodobně nic potřebného. Jestli však provozujete větší službu s cca 100 requesty za vteřinu (ve špičce) a ještě aplikace běží na více webových serverech, tak jako ta naše, nasazujete často a rádi a naopak neradi přicházíte o requesty, tak jako my, pak věřím, že by pro vás následující text mohl být zajímavý.

Pokračování textu Deploy PHP aplikací, bez výpadku a pod (velkou) zátěží

Jak na vlastní linuxový vývojový server pod Windows – nově a lépe

Dlouhou dobu používám při vývoji virtuální Ubuntu server, ve kterém mám nainstalované všechny databáze a programy, které nechci mít standardně v instalaci Windows na notebooku. Už delší dobu jsem chtěl do serveru přesunou i webový server a testovací SMTP server, který neodesílá emaily, ale ukládá je do souboru a přitom nepřijít o komfort pracovat z prostředí Windows. Jak se zadařilo popíšu níže.

Pokračování textu Jak na vlastní linuxový vývojový server pod Windows – nově a lépe

Logování systémových událostí do souboru – EventsLogger

Pro měření odpracovaného času jsem zkoušel používat různé prográmky. Bohužel žádný mi nevyhovoval na 100% a tak jsem se nakonec vrátil k jednoduché tabulce v Excelu. Potřeboval jsem mít akorát přehled od kdy do kdy jsem měl počítač spuštěný, kdy byl uzamčený a podobně. Proto jsem si naprogramoval jednoduchou službu, která tyto události loguje do textového souboru a z tohoto logu jsem schopný během chvilky vypočítat celkem přesně denní odpracovanou dobu.

Pokračování textu Logování systémových událostí do souboru – EventsLogger

Třída String v PHP

Začalo mi vadit, že jsem si musel pamatovat všechny ty speciální funkce pro práci s řetězci a zároveň, že nepodporují kódování UTF-8. Co si budeme povídat, člověk občas zapomene použít mb_ variantu. Proto jsem se nechal inspirovat třídou String v Javě a pokusil se implementovat něco podobného v PHP. Chtěl jsem vytvořit něco, co se bude používat jako standartní řetězce v PHP s přidanou objektovou hodnotou.

Pokračování textu Třída String v PHP

RemoveBOM – hromandé ostranění BOM hlaviček

BOM (Byte Order Mark) je Unicode znak sloužící k definování pořadí bytů v textovém souboru (proudu). UTF-8 reprezentuje BOM sekvencí bytů 0xEF, 0xBB, 0xBF. Textové editory nebo webové prohlížeče interpretující text jako ISO-8859-1 nebo CP1252 zobrazují BOM jako “ “. Standard Unicode povoloje, ale nevyžaduje BOM pro soubory v kódování UTF-8. Pořadí bytů nemá v kódování UTF-8 žádný význam a BOM slouží pouze pro identifikaci kódování UTF-8. Některé editory nebo interpreti kódu mají s BOM problém a interpretují ho jako znak. Například v PHP to způsobuje problém s nemožností odeslání hlaviček, jelikož už byl odeslám znak BOM. Z toho důvodu doporučuji znak BOM nepoužívat a protože ho některé editory používá defaultně a toho chování se nedá vypnout (např. Microsoft Notepad nebo Microsoft Visual C++) naprogramoval jsem malou utilitku, která BOM ze souborů hromadně odstraní.
Pokračování textu RemoveBOM – hromandé ostranění BOM hlaviček

Jak na vlastní linuxový vývojový server pod Windows

Tento tutoriál je již neaktuální! Doporučuji rovnou přeskočit na jeho aktualizovanou podobu.

Programujete v PHP? Využíváte při tom databáze MySQL nebo PostgreSQL? A vyvíjíte přitom ve Windows? Pokud jste na všechny otázky odpověděli ano, pak jste možná i vy narazili na problém, který jsem před časem sám řešil. Jsem Windowsář (né, to není ten problém :-)), nestydím se za to a dokonce jsem na to i hrdý. Nejsem zvyklý používat vzdálené vývojové servery, kde bych bastlil své aplikace, ale mám rád všechno hezky u sebe. Často vyvíjím na různých místech a (kvalitní) připojení k internetu není vždy dostupné. Apache, MySQL i PostreSQL mají sice své verze pro Windows, ale hlavně co se databází týče, se mi pořád nezdají jako ideální volba. Také jsem zvyklý programovat na notebooku, který často používám i k jiným věcem a pak není třeba, aby mi na pozadí běžely další služby, které nevyužívám, a zabírají pouze paměť. V neposlední řadě jsem se pořád chtěl zdokonalit v administraci linuxu, protože jako webový vývojář se linuxu stejně nevyhnu. A tak jsem dostal nápad, udělat si s pomocí VirtualBoxu vlastní lokální virtuální vývojový server v linuxu. (Jak jsem poznal ve firmě, kam jsem chvilku po mém osvícení nastoupil, nebyla to myšlenka originální. Ale jeden nový kolega mi dokonce tvrdil, že mu PostgreSQL běhá v linuxovém virtuálu rychleji než na Windows, což mě potěšilo, ale berte to prosím bez záruky.)

Pokračování textu Jak na vlastní linuxový vývojový server pod Windows