dystrybucje Debian/ Ubuntu i inne bazujące na Debianie (np. Mint):
sudo apt-get install apache2
sudo a2enmod ssl
dystrybucje Red Hat/ Fedora/ CentOS:
yum install httpd
yum install mod_ssl
-----BEGIN CERTIFICATE-----
do -----END CERTIFICATE-----
i zapisz do pliku mojadomena.crt.mojadomena.crt
do katalogu w którym będzie przechowywany certyfikat, np.: /etc/ssl/certs/
VirtualHost
dla twojego serwera wirtualnego. Do działania certyfikatu SSL niezbędne będą następujące dyrektywy: SSLEngine on
- włączenie SSL w Apache'uSSLCertificateFile
- plik zawierający certyfikat serwera oraz certyfikat pośredni (intermediate) odpowiedni dla zamówionego certyfikatu SSLSSLCertificateKeyFile
- plik zawierający klucz prywatnyKonfiguracja minimalna:
<VirtualHost 1.2.3.4:443>
DocumentRoot /var/www
ServerName www.moja-domena.pl
SSLEngine on
SSLCertificateFile /etc/ssl/certs/mojadomena.crt
SSLCertificateKeyFile /etc/ssl/private/mojadomena.key
</VirtualHost>
Konfiguracja dodatkowa, zalecana:
<VirtualHost 1.2.3.4:443>
# [...]
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
Header always set Strict-Transport-Security "max-age=31536000"
SSLUseStapling on
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
Protocols h2 http/1.1
# [...]
</VirtualHost>
SSLProtocol -all +TLSv1.2 +TLSv1.3
- wyłączenie przestarzałych protokołów SSLv2
, SSLv3
, TLSv1.0
, TLSv1.1
. Włączenie aktualnie bezpiecznych protokołów TLSv1.2
i TLSv1.3
.SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
- ustawienie priorytetu dla silnych szyfrów, jednocześnie wyłączenie słabych i przestarzałychProtocols h2 http/1.1
- Włączenie protokołu HTTP/2Header add Strict-Transport-Security
- Nagłówek Strict-Transport-Security (HSTS) powiadamia przeglądarkę aby za każdym razem łączyła się do serwera tylko poprzez protokół SSL (HTTPS). Czas ustalony w max-age podaje się w sekundach (31536000 sekund = 12 miesięcy)sudo service apache2 restart
dystrybucje Red Hat/ Fedora/ CentOS
apachectl restart
sudo /usr/sbin/apachectl restart
/var/log/apache2/error.log
: Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
Możliwe przyczyny: ssl
w Apache'u.ssl
do serwera Apache sudo a2enmod ssl
sudo service apache2 restart
/var/log/apache2/error.log
: AH02238: Unable to configure RSA server private key
SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Możliwe przyczyny i sposoby rozwiązania: /var/log/apache2/error.log
: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
Możliwe przyczyny: headers
w Apache'u.headers
do serwera Apache sudo a2enmod headers
sudo service apache2 restart
ssl_error_weak_server_ephemeral_dh_key
Przyczyna: ssl_dhparam
).sudo service apache2 restart