SSL és a neuromancer.hu

Az oldal mostantól SSL biztosított kapcsolaton érhető el. Tehát a

https://neuromancer.hu

címen (a hátétépéess a lényeg).

Ehhez természetesen szükségem volt egy tanusítványra, amit az Internet Security Research Group ingyen szolgáltat a Let’s Encrypt tanusítványkezelővel. A tanusítványt a certbot segítségével telepítettem, es az Electronic Frontier Foundation vonatkozó toolja. Teljesen automatán megy az egész, nem kell regisztrálni sehova, sem emailt/telefont megadni.

Tanusítvány megszerzése

A telepítés elég egyértelmű, jól le is van a honlapon dokumentálva, de azért kicsit kiegészítve legyen meg itt is, hozzátéve a httpd beállításokat is, amik nincsenek ott (nem ott a helyük). Esetemben Ubuntu/nginx kombó játszik. A certbot.eff.org oldalon (amit szintén a Let’s Encrypt tanúsít) található leírás szerint pár lépés az egész, és valóban. Unix shell root jogosultsággal feltételezett.

Először is vélhetően hozzá kell adni a repolistádhoz a certbot repot:

sudo add-apt-repository ppa:certbot/certbot

majd egy apt-get update után telepíteni a szoftvert:

sudo apt-get install certbot

Az nginx plugin jelenleg inkább kisérleti stádiumban van, így kézzel kell futtatni a generálást és beállítást.

sudo certbot certonly

Innentől követni kell a képernyőn megjelenő utasításokat:

How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Place files in webroot directory (webroot)
2: Spin up a temporary webserver (standalone)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Válaszd ki az 1-et, majd add meg a domaint amihez tanusítványt szeretnél (akár többet is egyszerre), majd a wwwroot abszolút elérési útját. Ha van rootshelled, ezeket is tudnod kell.

És ennyi. Van webes biztonsági tanusítványod. Amik a

/etc/letsencrypt/live/

alá vannak lerakva domainek szerinti folderekbe.

A webkiszolgáló beállítása SSL-hez

Én nginx-et használok, ennek megfelelőek az alábbi lépések.
Engedélyezni kell (“be kell kapcsolni”) a honlapod konfigfile-jában (ami alapértelmezve az /etc/nginx/sites-available/ folderben található ) az ssl funkcionalitást. Ha a default filet duplikáltad akkor jellemzően a végén vannak a beállítások a

# HTTPS server

blokkban. Itt kell néhány beállítást eszközölni. A gyári

#server {
# listen 443;
# server_name localhost;
#
# root html;
# index index.html index.htm;
#
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
#
# ssl_session_timeout 5m;
#
# ssl_protocols SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
# ssl_prefer_server_ciphers on;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}

beállításokat hozzá kell adaptálni a szerveredhez (nagyrészt ugyanúgy, mint a file elején a normál http-nél tetted). Kezdve, hogy a kikommenteled a teljes blokkot (törlöd az összes soreleji # -t)

server_name : a saját szervered neve
root: a wwwroot folder, ahol a weboldalad file-jai találhatók a szerveren.
Ha használsz php-t írd be következő sorban az index.php -t az index.html elé!

majd a tanusítványt betolni a konfigba:

ssl_certificate : /etc/letsencrypt/live/a_te_domained/fullchain.pem;
ssl_certificate_key : /etc/letsencrypt/live/a_te_domained/privkey.pem;

Gyakorlatilag az alapbeállítás ennyi.

Ha futtatsz PHP-t, akkor természetesen ebbe a szerverblokkba is be kell vezetni ezt, simán mehet copy-paste-ből az eredeti szerverblokkból a vonatkozó rész. A

location ~ \.php$ {

}

blokkra gondolok (szervere válogatja pontosan mi van benne).
Ezután feltűnt, hogy bizonyos nem minden működik még most sem megfelelően, bizonyos generált php oldalak 404-et dobnak. Ezt megjavítandó csak át kell kicsit írni a

location / {
try_files $uri $uri/ =404;
}

blokkban az utasítást:
try_files $uri $uri/ /index.php?q=$uri&$args;
(a 404-es paraméter törlésével a http 404 ( ==nem található) hiba közlését a felhasználóval az nginx helyett a wordpressnek adjuk)

Kész! Lehet még konfigolni, finomhangolni persze.

Filementés után az nginx-et újra kell indítani, hogy betöltse az új beállításokat:

sudo service nginx restart

WordPress https elésére

Ez is pofonegyszerű. Admin loginnel bejelentkezve a Settings alatt a honlap címét és elérését kiegészíteni egy s betűvel, hogy https://domain.cim alatt töltse be a WP.

Megjegyzés: a sima http elérés természetesen még mindig él, a “sima” szerverblokk utasításait kikommentelve kikapcsolható. Persze ekkor a szerver 403-t dob, ha valaki sima, nem biztonságos módon kapcsolódik.

A http-n érkező forgalmat célszerű ilyenkor (meg amúgy is) https-re irányítani szimpla http redirecttel:

server {
listen 80; ## listen for ipv4; this line is default and implied
server_name szervere_neve;
return 301 https://$server_name$request_uri;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *