Kujdes
Hapi 1: Gjenerimi i certifikatës
Hapi 2: Konfigurimi i murit të zjarrit
Hapi 3: Konfigurimi i hostit virtual Apache
Hapi 4: Aktivizimi i modulit Apache SSL
Hapi 5: Ridrejtoni të gjithë trafikun HTTP në HTTPS (Opsionale)
SSL dhe pasardhësi i tij TLS (Secure Sockets Layer / Transport Layer Security) shtojnë një shtresë enkriptimi midis klientit dhe serverit. Pa këtë teknologji, të dhënat dërgohen në server në tekst të thjeshtë, duke lejuar palët e treta të lexojnë të gjithë informacionin e dërguar dhe marrë nga serveri juaj.
Ky tutorial do t'ju mësojë se si të krijoni një certifikatë SSL/TLS dhe ta aktivizoni atë në Apache 2.4 në Ubuntu 16.04. Unë supozoj se Apache tashmë është vendosur dhe funksionon. Nëse dëshironi të mësoni se si të instaloni një pirg LAMP, shihni këtë dokument Vultr .
Kujdes
SSL/TLS certificates are normally generated by a trusted CA (certificate authority).
By generating it yourself, you will be the signer, meaning the browser won't be able to verify whether the identity of the certificate should be trusted, and it will warn the user.
Although it is possible to bypass this alert, public-facing sites should be using a certificate signed by a trusted CA.
Let's encrypt is a CA that offers certificates for free. You can learn how to install their certificate in Apache and Ubuntu 16.04 here.
For internal applications, using a self-signed certificate might be valid, especially if you don't have a domain name.
Hapi 1: Gjenerimi i certifikatës
Së pari, le të krijojmë një vend për të ruajtur skedarin.
mkdir ~/certificates
cd ~/certificates
Gjeneroni CSR dhe çelësin privat.
openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Ai do të kërkojë informacion për kërkesën për certifikatë. Plotësoni me informacionin e duhur.
Country Name (2 letter code) [AU]: US
State or Province Name (full name) [Some-State]: FL
Locality Name (eg, city) []: Miami
Organization Name (eg, company) [My Company]: My Company
Organizational Unit Name (eg, section) []:
Emri i zakonshëm duhet të jetë emri juaj i domenit ose adresa IP e serverit. Gjithashtu, plotësoni emailin tuaj.
Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
Email Address []:webmaster@example.com
Tani, zhvendosni certifikatën në dosjen e konfigurimit të Apache.
mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.
Certifikata është gati! Më pas, ne do të përgatisim Apache për të punuar me certifikatën.
Hapi 2: Konfigurimi i murit të zjarrit
Duhet të sigurohemi që porta TCP 443 është e hapur. Ky port përdoret në lidhjet SSL në vend të portit 80. Në këtë tutorial, ne do të përdorim UFW.
Sigurohuni që UFW të jetë i aktivizuar.
sudo ufw enable
Tani lejoni cilësimet e paracaktuara të Apache për murin e zjarrit.
sudo ufw allow 'Apache Full'
Duke shtypur " sudo ufw status", mund të shihni një listë të rregullave aktuale. Konfigurimi juaj duhet të ngjajë me këtë:
To Action From
-- ------ ----
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Ju gjithashtu duhet të lejoni OpenSSH këtu për lidhjet e ardhshme.
sudo ufw allow 'OpenSSH'
Hapi 3: Konfigurimi i hostit virtual Apache
Navigoni në direktorinë e konfigurimit të paracaktuar të faqes Apache.
sudo nano /etc/apache2/sites-available/default-ssl.conf
Ky skedar i tregon serverit se ku të kërkojë certifikatën SSL. Me heqjen e komenteve, duhet të duket si konfigurimi i mëposhtëm.
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Redakto këtë rresht:
ServerAdmin email@example.net
Shtoni këtë pikërisht poshtë ServerAdminrreshtit:
ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
Tani, modifikoni këto rreshta me vendndodhjen e certifikatës sonë:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Skedari ynë përfundimtar duhet të ngjajë me këtë:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin email@example.net
ServerName 203.0.113.122
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Ruani dhe mbyllni skedarin.
Hapi 4: Aktivizimi i modulit Apache SSL
Aktivizo modulin SSL duke shtypur:
sudo a2enmod ssl
Tani aktivizoni sajtin që sapo kemi redaktuar:
sudo a2ensite default-ssl.conf
Rinis Apache:
sudo service apache2 restart
Le të hyjmë në faqen e re të sigurt të internetit! Hapeni atë në shfletuesin tuaj (sigurohuni që të shkruani https:// ).
https://YOUR_SERVER_IP
Shfletuesi juaj do t'ju paralajmërojë se certifikata është e pavlefshme, siç prisnim. Kjo ndodh sepse certifikata nuk është e nënshkruar. Ndiqni hapat e ofruar nga shfletuesi juaj për të vazhduar në faqen tuaj.
Hapi 5: Ridrejtoni të gjithë trafikun HTTP në HTTPS (Opsionale)
Hapni skedarin e paracaktuar të hostit virtual të Apache:
nano /etc/apache2/sites-available/000-default.conf
Shtoni këtë rresht brenda <VirtualHost *:80>etiketës:
Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
Rifresko konfigurimin e Apache:
sudo service apache2 reload
I gjithë trafiku i faqes në internet tani do të ridrejtohet automatikisht në HTTPS.