Jak uruchomić i skonfigurować serwer WWW na Raspberry Pi (Linux/Raspbian (Debian) + Apache + PHP + MySQL) pisałem już jakiś czas temu… Przy okazji wspomniałem jak „na swoje potrzeby” uruchomić połączenie szyfrowane z serwerem (https/SSL) korzystając z „prywatnego” certyfikatu.
Pewnym minusem tego rozwiązania jest komunikat w przeglądarce informujący o tym, że certyfikat jest niezaufany – dlatego o ile „na nasze potrzeby” takie rozwiązanie jest wystarczające (a do tego darmowe i proste do wdrożenia), to w przypadku gdy z połączenia szyfrowanego z naszą stroną WWW mają korzystać „inni” warto pomyśleć nad instalacją certyfikatu który będzie zaufany w większości przeglądarek…
Spis treści w artykule
Bezpłatny certyfikat StartSSL
Zaczynamy od założenia konta na StartSSL.com – najszybciej jest chyba skorzystać z opcji „Express Lane”:
Pamiętajcie by podczas rejestracji podać prawdziwe dane.
Jak wszystko pójdzie dobrze, do Waszej przeglądarki (systemu) zostanie dodany klucz – i to właśnie za jego pomocą logujecie się do swojego konta.
StartSSL Free (Class 1)
By wygenerować certyfikat będzie potrzebna weryfikacja domeny. Wygląda to tak, że możecie wybrać jeden z kilku „systemowych” adresów e-mail by potwierdzić, że jesteście właścicielami domeny.
Do wyboru m.in.:
- webmster@domena
- postmaster@domena
Certyfikat wygenerujcie wybierając zakładkę „Certificates Wizard” a następnie:
Web Serwer SSL/TLS Certificate
W następnym kroku trzeba ustawić hasło dla „klucza prywatnego” (od 10 do 32 znaków, tylko litery i cyfry).
Możecie też zmienić m.in. rozmiar klucza (Keysize) z 2048 bitów na 4096.
W dalszej kolejności należy zapisać plik ssl.key, wybrać domenę i jedną(!) subdomenę (np. www, ale może być dowolna), i na koniec zapisać jeszcze plik ssl.crt.
Oprócz plików ssl.key i ssl.crt będą potrzebne jeszcze dwa, które należy pobrać ze strony StartSSL:
W przypadku gdy chcecie zabezpieczyć więcej domen (lub subdomen) wystarczy powtórzyć powyższe kroki, lub skorzystać z certyfikatu płatnego.
Apache2: instalacja certyfikatu SSL
Procedura jest opisana na przykładzie Raspberry Pi z systemem Raspbian (Linux/Debian) i od tego momentu może się różnić w zależności od typu/rodzaju systemu operacyjnego i/lub serwera WWW jaki macie zainstalowany na swoim urządzeniu.
Zakładam też, że macie już skonfigurowany serwer WWW (Apache) i dodaną domenę/subdomenę.
Zaczynamy od skopiowania potrzebnych plików do Raspberry Pi, np. do katalogu:
/usr/local/etc/apache/conf/ssl.crt/
Wy możecie wybrać inny – pamiętajcie tylko by odpowiednio zmodyfikować ścieżki w następnych krokach.
Edytujemy plik konfiguracyjny serwera
sudo nano /etc/apache2/sites-enabled/default-ssl
I zaraz za:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ServerName NASZA_DOMENA - pamiętaj by uzupełnić!
ServerName RPi01
dodajemy:
SSLEngine on
SSLProtocol +TLSv1.1 +TLSv1.2
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
SSLHonorCipherOrder on
SSLCertificateFile /usr/local/etc/apache/conf/ssl.crt/ssl.crt
SSLCertificateKeyFile /usr/local/etc/apache/conf/ssl.crt/ssl.key
SSLCertificateChainFile /usr/local/etc/apache/conf/ssl.crt/sub.class1.server.ca.pem
SSLCACertificateFile /usr/local/etc/apache/conf/ssl.crt/ca.pem
Jeśli wcześniej korzystaliście z szyfrowania z własnym/prywatnym/niezaufanym certyfikatem, tak jak to opisywałem to dodatkowo musicie skasować lub „zakomentować” (przez dodanie # na początku linii) następujące 2 linijki:
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
Teraz wystarczy zrestartować serwer (usługę):
sudo /etc/init.d/apache2 restart
Po wejściu na stronę powinniście zobaczyć Wasz nowy (i zaufany) certyfikat:
Wyłączamy hasło dla ssl.key
Jak zapewne zauważyliście przy okazji restartu serwera – za każdym razem trzeba podać hasło do klucza prywatnego (ssl.key), co może być niewygodne – zwłaszcza przy zdalnej pracy z serwerem.
By usunąć hasło z pliku (odszyfrować certyfikat) można skorzystać z formatki dostępnej na Waszym koncie w StartSSL:
- Tool Box: Decrypt Private Key
Albo bezpośrednio z poziomu systemu za pomocą prostej komendy, choć najpierw zrobimy kopie pliku – na wszelki wypadek:
sudo mv /usr/local/etc/apache/conf/ssl.crt/ssl.key /usr/local/etc/apache/conf/ssl.crt/ssl.key.bak
I usuwamy żądanie hasła:
sudo openssl rsa -in /usr/local/etc/apache/conf/ssl.crt/ssl.key.bak -out /usr/local/etc/apache/conf/ssl.crt/ssl.key
Wygasa Twój certyfikat logowania do StartSSL? Zobacz jak wygenerować nowy certyfikat logowania…
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
Mam stronkę (i sporo lat – 81…)na raspberry: http://a-zet.katowice.pl i chciałbym dołożyć dumną literkę s do adresu ale zupełnie nie rozumiem zdania: „Oprócz plików ssl.key i ssl.crt będą potrzebne jeszcze dwa, które należy pobrać ze strony StartSSL:
ca.pem
sub.class1.server.ca.pem”
Wyskakuje błąd 404 po kliknięciu na link, nawet zarejestrowałem się na stronie wotrus.com ale nie zobaczyłem tych dwóch plików. :-( Można prosić o pomoc? Najchętniej mejlową.
Pozdrawiam
Zerknij do tych 2 artykułów: „Let’s Encrypt to bezpłatny i wygodny w konfiguracji certyfikat SSL dla Twojej strony” i „Cloudflare wprawdza Universal SSL i oferuje obsługę SSL również dla bezpłatnego planu”.