OpenLiteSpeed webserver jako http/3 proxy

9. března 2021

OpenLiteSpeed webserver znám již pár let. Narazil jsem na něj, když mě zajímalo, na čem běží portál Joomla! tedy https://www.joomla.org/. Instalaci si ukážeme na Debian 10 (Buster). Návod je na https://openlitespeed.org/kb/install-ols-from-litespeed-repositories/.

 

S právy roota spustíme:

wget -O – http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | bash

apt install openlitespeed

Hotovo.

 

V systému máme novou službu lsws.service. Stačí napsat:

systemctl status lsws.service

  • lsws.service – LSB: lshttpd

Loaded: loaded (/etc/init.d/lsws; generated)

Active: active (running) since Mon 2021-03-08 17:50:03 CET; 2s ago

Docs: man:systemd-sysv-generator(8)

Process: 52649 ExecStart=/etc/init.d/lsws start (code=exited, status=0/SUCCESS)

Tasks: 4 (limit: 2343)

Memory: 5.2M

CGroup: /system.slice/lsws.service

├─52669 openlitespeed (lshttpd – main)

├─52672 openlitespeed (lscgid)

├─52673 openlitespeed (lshttpd – #01)

└─52674 openlitespeed (lshttpd – #02)

 

Mar 08 17:50:01 vyboh systemd[1]: Starting LSB: lshttpd…

Mar 08 17:50:03 vyboh systemd[1]: Started LSB: lshttpd.

 

Můžeme se pustit do konfigurace.

Na firewallu si musíme povolit UDP na portu 443 a přístup z vlastní IP na TCP port 7080.

Po zadání IP nebo názvu stroje do prohlížeče a portu 7080 se dostaneme do webového rozhraní pro konfiguraci OpenLiteSpeed webserveru (dále jen WebAdmin). Např. https://217.198.116.182:7080

(samozřejmě je potřeba schválit výjimku pro neplatný certifikát).

Uživatelské jméno a heslo najdete v souboru /usr/local/lsws/adminpasswd

např.

# cat /usr/local/lsws/adminpasswd

WebAdmin user/password is admin/YzNmMTM4

 

Po přihlášení k WebAdmin si nastavíme vlastní heslo případně i uživatele pomocí kliknutí v levém menu na WebAdmin Settings pak General a pak na kartě Users.

Heslo stávajícího uživatele změníme kliknutím na ikonku tužky, nového uživatele přidáme kliknutím na +.

Pokud měníme stávajícího uživatele dostaneme jako bonus důležitou zprávu o existenci shell skriptu

/usr/local/lsws/admin/misc/admpass.sh

kterým smažeme všechny existující uživatele a nastavíme nové heslo pro uživatele admin.

 

Protože je vcelku jedno kde nám běží původní web, tak se můžeme pustit do konfigurace. Pokud běží na stejném serveru, je potřeba původní webserver nechat běžet na jiných portech než na 80 a 443. Pokud nám běží na jiném stroji, bude potřeba změnit A (CNAME) záznamy v DNS.

 

Než začneme musíme si ještě vygenerovat certifikát pro Default SSL listener. Protože nepotřebujeme platný certifikát, tak si ho vygenerujeme do adresáře /usr/local/lsws/conf/cert/

 

cd /usr/local/lsws/conf/cert/

openssl req -x509 -nodes -days 365 \

-subj ‚/C=CZ/ST=Czech Republic/L=Brno/O=ZONER Software, a.s./OU=CZECHIA/CN=vyboh.zarea.net‘ \

-newkey rsa:2048 -keyout vyboh.zarea.net.key -out vyboh.zarea.net.crt

 

Opustíme příkazovou řádku a vrátíme se zpátky k WebAdmin.

 

Levé menu Listeners u Listener name Default klikneme na ikonku lupy.

Kliknutím na ikonku tužky upravíme v Address Settings Port na 80. Změny se uloží kliknutím na ikonku diskty.

Ve Virtual Hosts Mappings smažeme Virtual Host Example (ikonka koše)

Klikneme opět v levém menu na Listeners a kliknutím na + vytvoříme nový Listener. Jako Listener Name můžeme dát třeba DefaultSSL, port nastavíme na 443, Secure na Yes a uložíme.

Jsme zpátky v menu Listeners – klikneme na lupu u DefaultSSL a klikneme na záložku SSL.

 

Začneme editací SSL Private Key & Certificate.

Private Key File – vložíme úplnou cestu ke klíči (v našem příkladu /usr/local/lsws/conf/cert/vyboh.zarea.net.key) a cestu k certifikátu (/usr/local/lsws/conf/cert/vyboh.zarea.net.crt).

 

Teď upravíme SSL Protocol

Povolíme pouze TLS v1.2 a TLS v1.3

Enable ECDH Key Exchange – Yes

Enable DH Key Exchange – YES

a uložíme.

 

Levé menu – Virtual Hosts

Smažeme Example a vytvoříme si nový Virtual Host (ikonka koše a + jako minule).

 

Záložka Basic

Předvedeme si to na doméně vyboh.net.

Virtual Host Name: vyboh.net

Virtual Host Root: /data/allvhosts/

Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf

Enable Scripts/ExtApps: Yes

Restrained: Yes

klikneme na uložit a objeví se chyba a také rovnou řešení.

file /usr/local/lsws/conf/vhosts/vyboh.net/vhconf.conf does not exist. CLICK TO CREATE

Takže kliknem na CLICK TO CREATE a uložíme.

 

Záložka General

Document Root: /data/allvhosts/

Domain Name: vyboh.net

Domain Aliases: www.vyboh.net

uložíme

 

Záložka External App

Klikneme na +, vybereme Web Server klikneme na šipku (Next)

Name: vyboh.net

Address: https://217.198.116.182 (IP adresa serveru na kterém reálně běží Apache pro doménu vyboh.net, pokud by vyboh.net běžela na stejném serveru a na jiném portu, nastavíme ho tady. Např. http://127.0.0.1:8080)

Max Connections: 500

Initial Request Timeout (secs): 10

Retry Timeout (secs): 5

Response Buffering: No

a uložíme

 

Záložka Rewrite

Rewrite Control

Enable Rewrite: Yes

uložíme

 

Záložka Rewrite Rules

REWRITERULE ^/(.*)$ HTTPS://vyboh.net/$1 [P,E=PROXY-HOST:vyboh.net]

uložíme

 

Záložka SSL

SSL Private Key & Certificate

Vyplníme Private Key File, Certificate File a CA Certificate File.

Máme téměř hotovo.

Vrátíme se k Listeners (levé menu). Pro Default a DefaultSSL přidáme Virtual Host Mappings (+)

Virtual Host: vyboh.net

Domains: vyboh.net, www.vyboh.net

Uložíme.

 

Uděláme Graceful Restart (např. kliknutím na zelenou ikonku se šipkou vpravo nahoře).

Hotovo. Nyní nám běží https://vyboh.net na http/3.

 

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *