https na stronie z WordPress (debian + apache2)

Https na stronach internetowych to już standard. Certyfikaty SSL są coraz tańsze, ale wciąż domowi użytkownicy nie chcą wydawać pieniędzy na zabezpieczenie swoich blogów na WordPress. Istnieje dla nich alternatywa – projekt Let’s Encrypt (https://letsencrypt.org/). Oferuje on darmowe certyfikaty SSL wydawane na 90 dni z możliwością darmowej odnowy. Opiszę jak w stosunkowo prosty sposób skonfigurować stronę do obsługi protokołu https.

Zakładam, że jesteś administratorem swojego serwera www (apache2), masz dostęp do swojego Debiana przez SSH z uprawnieniami root’a, masz juz uruchomioną stronę na WordPress i … wykonałeś kopię zapasową serwera.

  1. Włączamy na serwerze obsługe SSL:
    • sudo a2enmod ssl
  2. Restartujemy apache:
    • service apache restart
  3. Instalujemy klienta Certbot (https://certbot.eff.org/) (rekomendowany na Let’s Encrypt). Na stronie Certbot znajduje się dokładna dokumentacja – ja wykorzystałem fragmenty)
    • wget https://dl.eff.org/certbot-auto
    • chmod a+x certbot-auto
  4. Teraz można wybrać w pełni zautomatyzowany proces instalacji na naszym serwerze www (włacznie z modyfikacją konfiguracji apache) lub pobrać tylko certyfikaty dla wybranych domen i dokończyć konfigurację ręcznie. Ja zalecam opcję drugą.
    • ./certbot-auto –apache certonly
    • 1 2 3 4 56
  5. edytujemy plik /etc/apache2/sites-enabled/twoja.domena.conf
    • <VirtualHost *:80>
      ServerName twoja.domena 
      Redirect permanent / https://twoja.domena/
      </VirtualHost><VirtualHost *:443>
      ServerAdmin admin@twoja.domena
      ServerName twoja.domena
      DocumentRoot /var/www/html/twoja.domena/
      ErrorLog /var/www/html/twoja.domena/log/error.log
      CustomLog /var/www/html/twoja.domena/log/access.log combined
      SSLCertificateFile /etc/letsencrypt/live/twoja.domena/cert.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/twoja.domena/privkey.pem
      SSLCACertificateFile /etc/letsencrypt/live/twoja.domena/chain.pem
      </VirtualHost>
  6. edytujemy/dodajemy (jeśli jeszcze nie ma) do pliku /var/www/html/twoja.domena/wp-config.php
    • define (‘WPLANG’, ‘pl_PL’);
      define (‘WP_HOME’,’https://twoja.domena’);
      define (‘WP_SITEURL’,’https://twoja.domena’);
      define(‘FORCE_SSL_LOGIN’, true);
      define(‘FORCE_SSL_ADMIN’, true);
  7. Restartujemy apache
    • service apache restart
  8. Jeśli wszystko przebiegło bez problemu możesz się cieszyć swoją zabezpieczoną stroną https