Dmitri Mosk
https://www.dmosk.ru/miniinstruktions.php?mini=apache-ssl
Uuendatud: 17.02.2022
Avaldatud: 31.01.2017
Juhised on kirjutatud UNIX-põhistele operatsioonisüsteemidele.
Päris-serveri jaoks tuleb sertifikaat hankida usaldusväärsest CA-st -- kas ettevõtte kohalikust või kommertslikust CA-st. Või tasuta saadud Let's Ecnryptist
(https://www.dmosk.ru/miniinstruktions.php?mini=get-letsencrypt).
Testkeskkonna jaoks võib luua ise allkirjastatud sertifikaadi. Selleks navigeerige kõigepealt töökausta.
``bash cd /etc/apache2
Looge sertifikaatide jaoks kaust ja navigeerige sinna:
``bash
mkdir ssl ; cd ssl
Ja genereerige sertifikaat:
openssl req -new -x509 -days 1461 -nodes -out cert.pem \
-keyout cert.key \
-subj "/C=RU/ST=SPb/L=SPb/O=Global Security/\
OU=IT osakond/CN=test.dmosk.local/CN=test"
*) selles näites on avalikud ja privaatsed võtmed loodud 4 aastaks (1461 päeva); subj parameetri väärtused võivad olla mis tahes osana testist.
Enne mooduli paigaldamist käivitage käsk:
apachectl -M | grep ssl
Kui näete sellist rida nagu:
ssl_module (shared)
Minge selle juhise kolmanda sammu juurde. Vastasel juhul installige httpd ssl_module
.
a2enmod ssl
Avage apache'i konfiguratsioonifail:
nano /usr/local/etc/apache24/httpd.conf
*) eeldame, et kasutatakse apache 2.4.
Leidke ja kommenteerige lahti järgmised read:
...
LoadModule ssl_module libexec/apache24/mod_ssl.so
...
Include etc/apache24/extra/httpd-ssl.conf.
...
Ja pange kommentaarid ette järgmistele ridadele:
#<IfModule ssl_module
#SSLRandomSeed startup builtin
#SSLRandomSeed connect builtin
#</IfModule
Selleks, et seaded rakenduksid, tuleb veebiserver taaskäivitada ühe käsuga:
systemctl restart apache2
Minge välja ssl kaustast:
cd ..
Avage fail virtuaalsete domeenide konfiguratsiooniga.
vi sites-enabled/site
Lisage avatud faili järgmine tekst
<VirtualHost *:443>
ServerName site.ru
DocumentRoot /var/www/apache/data
SSLEngine on
SSLCertificateFile ssl/cert.pem
SSLCertificateKeyFile ssl/cert.key
#SSLCertificateChainFile ssl/cert.ca-bundle
</VirtualHost>
*) kus:
Veenduge, et seaded on Apache'is õiged:
Apachectl configtest
Kui me näeme:
Syntax OK
Lugege uuesti apache'i konfiguratsiooni:
apachectl graceful
Avage brauser ja minge meie veebilehele, lisades https://
. Kui kasutate ise allkirjastatud sertifikaati (nagu meie puhul), kuvab brauser hoiatuse, et andmeedastus ei ole turvaline. Kinnitage meie kavatsus saidi avamiseks. Kui see toimib, minge sammu 5 juurde.
Kui see ei tööta, proovige leida põhjus, vaadates logifaili. See asub tavaliselt kataloogis /var/log/apache
või /var/log/httpd
.
Selleks, et kõik http
päringud automaatselt https
-le ümber suunata, peate seadistama ümbersuunamise (redirect
). Selleks on mitu võimalust.
Konfiguratsioonifailis.
Avage virtuaalsete domeenide konfiguratsioonifail (nagu sammus 3) ja lisage järgmine:
<VirtualHost *:80>
ServerName site.ru
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
*) selles konkreetses näites oleme suunanud ümber kõik päringud site.ru-le.
**) Pange eriti tähele, et kui teil on juba olemas VirtualHost *:80
loodava saidi jaoks, tuleb see välja kommenteerida või muuta.
Failis .htaccess
tuleb
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Rewrite mooduli paigaldamine.
Et ümbersuunamine Apache'is toimiks, peab rewrite moodul olema installeeritud.
a2enmod rewrite
systemctl restart apache2
Kui kasutate veebiserverit, kus on nii Apache kui ka NGINX, siis tavaliselt näeb viimane välja. Sellisel juhul on see see, mis vastab http-päringutele, millisel juhul tuleb NGINXis konfigureerida SSL.