Virtuální webserver – 2. část

web

V minulém díle jsme si nainstalovali virtuální webserver ve Virtualboxu. Na serveru nám tedy běží PHP5.5 a Apache. Celkem nudnou instalaci tedy už máme konečně za sebou a teď nás čeká ta vtipná 🙂 Hned po dopsání minulého článku mne napadlo, že by bylo zbytečně časově náročné sledovat aktualizace PHP. Proto si přidáme repozitář a případné aktualizace se nám budou nabízet ve správci aktualizací. V závislosti jakou verzi PHP chceme provozovat zadáme v terminálu:

– pro PHP 5.5:

Příkaz terminálu:
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update

– pro PHP 5.6:

Příkaz terminálu:
sudo add-apt-repository ppa:ondrej/php5-5.6
sudo apt-get update

Po přidání repozitáře se nám ve správci aktualizací objeví poslední aktualizace PHP:

webserver2

Aktualizaci nainstalujeme. To, že instalace proběhla správně lze ověřit příkazem z terminálu:

Příkaz terminálu:
php5 -v

což zobrazí aktuální verzi:

webserver2

Nebo můžeme verzi PHP zjistit v prohlížeči, přímo na našem serveru, pokud si vytvoříme např. soubor info.php v rootu serveru:

Příkaz terminálu:
sudo nano /var/www/html/info.php

A zapíšeme do něj výpis funkce phpinfo:

<?php
phpinfo();

Vše uložíme (Ctrl+O). Pokud nyní v prohlížeči zadáme adresu http://localhost/info.php, vidíme nejen verzi PHP, ale i další nastavení našeho serveru. Tento soubor si ještě ponecháme, bude se hodit :-D. Ale po spuštění serveru do provozu je vhodné jej smazat a to z důvodu bezpečnosti, aby si případný útočník nemohl jednoduše zobrazit naše nastavení.

Když jsme u té bezpečnosti, tak si rovnou nainstalujeme i SSL, abychom mohli na našem serveru používat protokol https. Pokud nyní zadáme https://localhost vidíme, že SSL není funkční:

webserver2

Proto si jej nejprve zaktivujeme:

Příkaz terminálu:
sudo a2enmod ssl
sudo service apache2 restart

Vytvoříme složku pro uložení certifikátu:

Příkaz terminálu:
sudo mkdir -p /etc/apache2/ssl

Vygenerujeme certifikát:

Příkaz terminálu:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt

Parametr „days“ nám udává platnost certifikátu ve dnech, uvedený příkaz tedy vygeneruje certifikát platný 1 rok. Při vytváření certifikátu budeme postupně dotazováni na jednotlivé údaje jako je země, stát, město, firma, pozice ve firmě, jméno a e-mail:

webserver2

Po vygenerování certifikátu provedeme úpravu konfiguračního souboru, abychom k němu nastavili aktuální cestu:

Příkaz terminálu:
sudo nano /etc/apache2/sites-available/default-ssl.conf

Provedeme úpravů následujících dvou řádků:

SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

Provedeme uložení (Ctrl+O) a zaktivujeme konfigurační soubor:

Příkaz terminálu:
sudo a2ensite default-ssl.conf
sudo service apache2 restart

Nyní již by nám měla adresa https://localhost zobrazit zabezpečenou stránku. Objeví se hláška, že certifikát není důvěryhodný, potvrdíme Risk 🙂 :
webserver2

A přidáme si stránku mezi důvěryhodné:

webserver2

Můžeme si zobrazit vygenerovaný certifikát:

webserver2

Kde vidíme údaje, které jsme zadali při jeho vytváření:

webserver2

Pro externí přístup je ještě potřeba povolit přístup přes router, stejně jako tomu bylo u protokolu http. V případě https (SSL) se jedná o port 443:

webserver2

Z vnitřní sítě si zobrazíme stránku pomocí vnitřního IP:

webserver2

Z vnějšku je to pak IP našeho routeru. Při restartu Apache jste si možná povšimli hlášky AH00558, která nás upozorňuje, že v konfiguračním souboru není zadáno jméno serveru:

webserver2

Provedeme tedy jeho editaci:

Příkaz terminálu:
sudo nano /etc/apache2/apache2.conf

A na konec souboru přidáme tento řádek:

ServerName localhost

Opět uložíme a provedeme restart Apache:

Příkaz terminálu:
sudo service apache2 restart

Nyní už se nám hláška nezobrazuje a vše je OK 🙂 :

webserver2

Doufám, že Vám server pěkně šlape a už teď se těšíte na další pokračování 😀

Související články:
Virtuální webserver – 1. část
Virtuální webserver – 3. část

Štítky , , , , , , , , , .Záložka pro permanentní odkaz.

4 reakce na Virtuální webserver – 2. část

  1. Jurajko říká:


    info.php



    • Allconius říká:

      Pokud kód obsahuje pouze PHP tak nemusíš uzavírat, tzn. správně je:
      ————————————————————-
      <?php
      phpinfo();
      echo 'Konec souboru';
      ————————————————————-
      nebo:
      ————————————————————-

      Konec souboru
      ————————————————————-

      • Allconius říká:

        aha nějak mi to neuložil to druhý je to tvoje jen za ukončovací značkou je napsáno „Konec souboru“

  2. Pingback:Openssl - Linux Mint CZ&SK