Podczas przesyłania danych pomiędzy przeglądarką klienta, a serwerem www czasem zachodzi potrzeba zaszyfrowania danych. Takie dane jak hasła, dane osobowe czy inne istotne informacje bezwzględnie należy szyfrować, gdyż bez szyfrowania mogą dostać się w niepowołane ręce.
Do szyfrowania danych potrzebny jest certyfikat. Można go wygenerować i wysłać do instytucji certyfikującego w celu jego podpisania lub możemy do wygenerować i podpisać sami (co i kiedy jest lepsze dla nas, w innym artykule).
Na początku instalujemy potrzebne pakiety:
root@server:# apt-get install openssl ssl-cert
Tworzymy w katalogu /etc/apache/ podkatalog ssl, a w nim kolejne podkatalogi certs (katalog do przetrzymywania certyfikatów) i private (katalog do przetrzymywania kluczy). W celu utworzenia i podpisania certyfikatu SSL własnym kluczem, w katalogu /etc/apach2/ssl wydajemy poniższe polecenie:
root@server:# openssl req -x509 -nodes -days 1864 -newkey rsa:2048 -keyout ./private/domena.pl.key -out ./certs/domena.pl.pem
zostaniemy zapytani o miasto, kraj, nazwę firmy, nazwę domeny, itp.
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:Wojewodztwo
Locality Name (eg, city) []:Miejscowosc
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nazwa firmy
Organizational Unit Name (eg, section) []:Dział firmy
Common Name (e.g. server FQDN or YOUR name) []:www.domena.pl
Email Address []:admin@domena.pl
A challenge password []:
An optional company name []:
Na pytania możemy nie odpowiadać naciskając Enter lub możemy wpisać odpowiednie dane, które później będą zawarte w certyfikacie.
Dla bezpieczeństwa należy pamiętać, aby nadać prawa odczytu do obydwu plików tylko dla roota.
chmod 600 /etc/apache2/ssl/private/domena.pl.key
chmod 600 /etc/apache2/ssl/certs/domena.pl.pem
Poniższym poleceniem można sprawdzić poprawność
certyfikatu:
openssl x509 -noout -text -in /etc/apache2/ssl/certs/domena.pl.pem
i klucza:
openssl rsa -noout -text -in /etc/apache2/ssl/private/domena.pl.key
Należy pamiętać o dodaniu odpowiednich modułów do apacha w katalogu /etc/apache2/mods-enables ssl.conf i ssl.load. W przypadku wybrania innych portów niż domyślny port ssl 443 należy w pliku /etc/apache2/ports.conf dodać odpowiednie wpisy np. Listen 444 dla portu 444.
Na koniec należy przeładować konfigurację apacha:
root@server:# /etc/init.d/apache2 reload
lub zrestartować apacha:
root@server:# /etc/init.d/apache2 restart
Po wpisaniu w przeglądarkę https://www.domena.pl połączenie z serwerem będzie szyfrowane (oczywiście należy zadbać jeszcze o odpowiednią konfigurację apacha).