
1.SSL module engedélyezése
Update-eled a rendszert, majd az Open SSL-t is.
apt-get update
apt-get upgrade openssl
Eengedélyezed az SSL module-t az Apache alatt
a2enmod ssl
Létrehozod a default weboldalra az SSL-t
a2ensite default-ssl
Újraindítod az apache service-t.
service apache2 reload
2. Ön-aláírt (Self signed) certificate létrehozása
Hozd létre az SSL tároló mappát a szerveren.
mkdir /etc/apache2/ssl
Hozd létre a Certificate-et.
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/apache2/ssl/default.key -out /etc/apache2/ssl/default.crt
-days 365 - egy évig érvényes
-keyout - a kulcs elérési útvonala
-out - a létrehozott certificate
Érdemes a kulcsot és a certificate nevét ugyanarra a névre állítani, hogy később könnyen lehessen azonosítani.
Másik lehetőség egy Python certbot telepítése, majd utána a certificate és a key bemásolása a megfelelő helyre (nem tudom, hogy hova hozza létre a cert-eket)
apt install certbot píthon3-certbot-apache
certbot --apache -d fw3.com -d www.fw3.com
3. Apache beállítása arra, hogy használja az SSL Certificate-et
Az Apache certificate használatát -et az előzőekben /etc/apache2/sites-available/default-ssl.conf
fileban kell beállítani, vagyis ezt a fájlt töltsd be egy szövegszerkesztőbe. Keresd ki a szövegben az SSLCertificateFile
és a SSLCertificateKeyFile
bejegyzéseket, majd módosítsd az alábbiak szerint.
SSLCertificateFile /etc/apache2/ssl/default.crt
SSLCertificateKeyFile /etc/apache2/ssl/default.key
Utána indítsd újra az Apache Service-t.
systemctl reload apache2
4. Virtual Host telepítése SLL alá
Az alábbi dolgokat kell végigcsinálni:
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/apache2/ssl/xyz.com.key -out /etc/apache2/ssl/xyz.com.crt
systemctl reload apache2
ae2ensite xyz.com
ae2ensite xyz.com-ssl
systemctl reload apache2
Ezek után lehet, hogy az eredeti vitual host-okat kicsit átalakítjuk
<VirtualHost *:80>
ServerAdmin webmaster@debian.local
ServerName xyz.com
ServerAlias xyz.com
Redirect permanent / https://xyz.com
</VirtualHost>
Ez a konfig a http kéréseket átküldi https kérésekre. Ezután már csak a http kérések lesznek kiszolgálva:
<VirtualHost *:443>
ServerAdmin webmaster@debian.local
ServerName xyz.com:443
DocumentRoot /var/www/xyz.com
ErrorLog ${APACHE_LOG_DIR}/xyz_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/xyz_ssl_access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/xyz.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/xyz.com.key
DirectoryIndex index.php index.html
<Directory /var/www/xyz.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<IfModule mod_php.c>
<IfModule proxy_fcgi_module>
# Enable http authorization headers
<IfModule setenvif_module>
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=
</IfModule>
<FilesMatch "\.(?:php|install|module|inc)$">
SSLOptions +StdEnvVars
</FilesMatch>
<FilesMatch ".+\.phps$">
Require all denied
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</IfModule>
</IfModule>
</VirtualHost>