Навярно на много хора, имащи лични сайтове, им се е налагало в някакъв момент да настроят сайтовете и техните сървъри сами. Е, 14 години след като започнах своите премеждия в уеб пространството, ми се наложи и на мен 🙂 Може би в някоя друга публикация ще споделя и за това как да си пуснете WordPress на Oracle Cloud инстанция, ползвайки Cannonical Ubuntu. И там не е лесна работата… Та, по темата.
1. По подразбиране Ubuntu операционни системи ползват firewall UFW. За съжаление, обаче, се оказва, че той не се харесва особено много с Oracle Cloud и това може да създаде проблеми, при опитите ви да си настроите SSL сертификат. Затова, според мен, първото нещо, което ще е хубаво да смените, е да изключите UFW, ползвайки следната команда:
sudo ufw disable
2. След като вече сте забранили UFW, е хубаво да си инсталирате нов firewall. За целта можете да ползвате firewalld:
sudo apt install firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --reload
По този начин вече имате firewall, който ви позволява да ползвате порт 80 и порт 443.
3. Следващата стъпка е да си сложите SSL конфигурационните файлове на сървъра и да ги настроите да работят с Apache 2. Ако все още нямате SSL сертификат, обаче, може би е добре да прегледате какво има в интернет. Ако искате да пробвате нещо и да не давате пари, може да пробвате Let’s encrypt. Ако искате да използвате платен сертификат, то може да разгледате готовите предложения на SuperHosting.bg. Един от по-евтините варианти, който можете да намерите, е на Rapid SSL.
След като си поръчате сертификат и попълните нужните данни, ще получите и няколко конфигурационни файла. Те ще са ви нужни, за да можете да настроите вашият сертификат на сървъра, който ще ползвате. За целта трябва да ги запазите в папка по избор на вашия Ubuntu сървър.
4. Това, което предстои оттук-нататък, е да настроите вашият Apache 2 сървър. В интернет можете да намерите доста примери за това как да го направите. Интересното при тях, обаче е, че те предполагат, че сте настройвали сървъра си по точно определен начин. Е, в моя случай имаше малко разлики, които ще опиша тук:
– конфигурационният файл се намира в /etc/apache2/sites-enabled/, като най-вероятно вътре ще имате два файла: „000-default.conf“ и „default-ssl.conf“. Първият е с настройки за порт 80, а вторият е този, който трябва да промените;
– можете спокойно да преименувате „000-default.conf“ на „000-default.old“, за да не ви пречи и да работите единствено с втория файл. Ако ползвате Ubuntu без графичен интерфейс, е нужно да изпълните следната команда, за да отворите файла:
sudo vi [името на файла]
– това, което трябва да направите, е да махнете коментара (#) от SSLEngine on. Добре би било да промените и ServerName да има за стойност името на вашия сайт, например www.kaloyan.org;
– намерете SSLCertificateFile и SertificateKeyFile и им задайте път до файловете, които запазихте в стъпките по-горе;
– намерете SSLCertificateChangeFile и поставете там своят intermediate certificate даден от организацията, издала ви сертификата;
– махнете всякакви IfDefine SSL тагове намиращи се във файла;
– добавете редиректване, ако някой се опита да отвори сайта ви с http (сложете следният блок най-горе във файла):
<VirtualHost *:80>
ServerName [вашият сайт]
Redirect permanent / https://[вашият сайт]/
</VirtualHost>
– излезте ползвайки Esc и :wq.
5. Нужно е да изпълните и следните команди:
– разрешаване на модул mod_ssl и mod_headers
sudo a2enmod ssl
sudo a2enmod headers
– добавяне на вашият конфигурационен файл
sudo a2ensite [името на вашият файл; ако е като примерът по-горе - default-ssl]
– тестване на промените
sudo apache2ctl configtest
– рестартиране на apache2 сървъра
sudo systemctl restart apache2
И така, ако не са ви излезли никакви грешки, вашият сървър вече трябва да е настроен успешно. Спокойно можете да отворите сайта си и да видите дали вече се зарежда с https. Също така, можете да проверите дали имате някакви проблеми ползвайки SSL checker.