SIKS – vježba 6 – Postavljanje HTTPS-a na XAMPP

U današnjem digitalnom dobu, sigurnost web aplikacija postala je neizostavan dio razvoja softvera. HTTPS (Hypertext Transfer Protocol Secure) standard je za sigurnu komunikaciju na internetu, štiteći podatke koji se prenose između krajnjeg korisnika i servera. Implementacija HTTPS-a ne samo da štiti podatke od presretanja i manipulacije, već također poboljšava povjerenje korisnika i može pozitivno utjecati na SEO vaše web stranice.

U ovoj praktičnoj vježbi, vodit ćemo vas kroz proces postavljanja HTTPS-a na lokalnom razvojnom serveru koristeći XAMPP na Windows operativnom sustavu. XAMPP je popularan PHP razvojni alat koji uključuje Apache poslužitelj, MySQL, PHP, i Perl, što ga čini idealnim izborom za razvojne svrhe. Od instalacije XAMPP-a, preko kreiranja i konfiguracije SSL certifikata, do testiranja i verifikacije vaše HTTPS konfiguracije, objasnit ćemo svaki korak detaljno kako biste mogli sigurno raditi na svojim projektima.

Bilo da ste web developer koji želi poboljšati svoje vještine u konfiguraciji servera ili student koji se upušta u svijet web sigurnosti, ova vježba će vam pružiti sve potrebne informacije za uspješno implementiranje HTTPS-a. Pratite nas kroz ove korake i osigurajte svoj lokalni razvojni okoliš!

Implementacija HTTPS-a u Windowsima

1. Instalacija XAMPP-a

Prvi korak u implementaciji HTTPS-a je instalacija XAMPP-a, koji uključuje Apache poslužitelj, MySQL, PHP, i Perl.

Preuzmite XAMPP za Windows sa službene stranice: Apachefriends.

Instalirajte XAMPP slijedeći upute za instalaciju.

2. Stvaranje SSL Certifikata

Da biste kreirali SSL certifikat za vaš lokalni server, koristit ćemo OpenSSL koji je već uključen u XAMPP.

Otvorite XAMPP Control Panel i pokrenite Apache server.

Otvorite Command Prompt kao administrator i navigirajte do Apache direktorija unutar XAMPP instalacije:

cd C:\xampp\apache

Pokrenite skriptu makecert.bat koja će vas voditi kroz proces stvaranja SSL certifikata:

makecert

Unesite tražene podatke kada to skripta zatraži, uključujući zemlju, državu, grad, naziv organizacije, ime poslužitelja (obično “localhost”) i e-mail adresu. Zapamtite PEM lozinku koju ste odredili.

Kada to dovršite, bit će dodane dvije mape u mapu apache:

C:\xampp\apache\conf\ssl.crt

C:\xampp\apache\conf\ssl.key

3. Konfiguracija HTTPS-a u Apache-u

Nakon stvaranja certifikata, konfigurirajte Apache da koristi ovaj certifikat za HTTPS.

Otvorite Windows Explorer i idite na sljedeću lokaciju:

C:\xampp\apache\conf\extra\

Uredite datoteku httpd-ssl.conf pomoću tekstualnog uređivača (npr. Notepad++ ili Visual Studio Code).

Pronađite i ažurirajte sljedeće linije unutar <VirtualHost _default_:443> sekcije:

DocumentRoot "C:/xampp/htdocs"
ServerName localhost
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"

Dodajte pravila za direktorij kako bi se osigurao pristup:

<Directory "C:/xampp/htdocs">
    Require all granted
</Directory>

4. Restart Apache Servera

Vratite se u XAMPP Control Panel i restartujte Apache server kako bi promjene stupile na snagu.

5. Provjera HTTPS Konfiguracije

Otvorite web preglednik i unesite https://localhost u adresnu traku.

Ako je sve konfigurirano ispravno, trebali biste moći pristupiti svojoj stranici preko HTTPS-a. Preglednik može upozoriti na sigurnost jer je certifikat samopotpisan, ali to je očekivano za lokalno testiranje.

kliknite na vezu Napredno – Pregled certifikata

KONFIGURACIJA HTTPS POMOĆU mod_ssl MODULA na LINUXU

Modul mod_ssl implementira podršku za SSLv3 i TLSv1.x u Apache poslužiteljima. Koristi se OpenSSL kriptografski algoritam

Modul je moguće preuzeti sa: https://httpd.apache.org/docs/2.4/mod/mod_ssl.html

1. Provjera Statusa Apache Poslužitelja

Prije nego što započnete s konfiguracijom, važno je provjeriti je li Apache poslužitelj aktivan i pokrenut:

Otvorite terminal kao administrator.

Unesite sljedeću naredbu da provjerite status Apache poslužitelja:

systemctl status apache2

Ako je rezultat prikazan kao Active: active (running), možete nastaviti. Ako nije, prvo pokrenite Apache koristeći:

sudo systemctl start apache2

2. Omogućavanje mod_ssl Modula

mod_ssl modul se koristi za implementaciju SSL i TLS protokola preko OpenSSL-a. Ako već nije omogućen, možete ga omogućiti koristeći sljedeće naredbe:

sudo a2enmod ssl

Omogućite default SSL virtual host koji dolazi s Apache-om na Debian i Ubuntu sustavima:

sudo a2ensite default-ssl

3. Konfiguracija SSL Certifikata i Virtual Hosta

SSL certifikat možete dobiti od certifikacijskog tijela (CA) ili koristiti samopotpisani certifikat za testiranje i razvoj. Za samopotpisani certifikat, slijedite ove korake:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/ssl-cert-snakeoil.key -out /etc/ssl/certs/ssl-cert-snakeoil.pem

Konfigurirajte SSL parametre unutar Apache konfiguracijske datoteke. Uredite default-ssl.conf koja se nalazi u /etc/apache2/sites-available/:

sudo nano /etc/apache2/sites-available/default-ssl.conf

Unutar datoteke, provjerite ili ažurirajte sljedeće retke da odgovaraju lokaciji vašeg certifikata i ključa:

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

4. Restart Apache Poslužitelja

Nakon konfiguracije, restartajte Apache poslužitelj da promjene stupaju na snagu:

sudo systemctl restart apache2

5. Provjera HTTPS Konfiguracije

Da biste provjerili da li je HTTPS pravilno postavljen, upotrijebite OpenSSL alat:

openssl s_client -connect localhost:443
openssl s_client -connect www.yourwebsite.com:443

Ovo će vam pokazati detalje SSL/TLS handshakea i potvrditi da je enkripcija aktivna.

Online provjera

Postoji mnogo online alata koji mogu provjeriti sigurnost vaše HTTPS veze i valjanost SSL/TLS certifikata. Ovi alati obično pružaju detaljne informacije o konfiguraciji sigurnosti, uključujući kvalitetu enkripcije, datum isteka certifikata, i više. Neki popularni alati uključuju:

Ovi alati provjeravaju vašu web stranicu i daju ocjenu A-F ovisno o sigurnosti vaše HTTPS konfiguracije.

Koristeći jednu od ovih metoda, možete lako provjeriti koristi li se HTTPS na vašoj web stranici i osigurati da je vaša veza sigurna.