Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: teele - 08.02.22 - klo:20.21

Otsikko: libhttpserver ja https
Kirjoitti: teele - 08.02.22 - klo:20.21

Kun tiedot nyt kulkevat libserverin ja html-sivun välillä kumpaankin suuntaan, voisi olla mahdollista kokeilla oikean, ulospäinkin näkyvän nettisuvun tekemistä. Tämä tarkoittanee salausta eli https yhteyttä nykyään.

Valitettavasti osaamisesta puuttuu vielä pari "pientä yksityiskohtaa":

miten hankitaan salausavaimet
minne ne laitetaan
miten kerrotaan libhttpserverille, mistä se voi ne löytää
jos sivupyynnössä on https-muoto, osaako libhttprerver siitä päätellä, että salattua muotoa käytetään, vai pitääkö se ottaa huomioon c++ -koodia kirjoitettaessa

Eli nämä "pikkuasiat"  aluksi :)

Olisi kuitenkin mukava, jos pystyisi kirjoittelemaan vähän vuorovaikutteisiakin sivuaja ilman, että pitää uppoutua apachen syövereihin. Ehkä libhttpserver olisi jopa pikku sivuihin kevyempi vaihtehto.

Httphttpmicroserveristä löytyi käsikirja ja opas netistä, mutta libhttpserver ja https tai encrypt -haut eivät näytä tuovan vastauksia kysymyksiin.



 
Otsikko: Vs: libhttpserver ja https
Kirjoitti: Tomin - 08.02.22 - klo:20.46
Varmaan helpointa olisi pystyttää Apache tai nginx hoitamaan https ja ohjata http-liikenne noiden ja sen oman http-ohjelman välillä. Reverse proxy olisi se hakusana, jolla noita ohjeita löytyy.

Joka tapauksessa salaukseen tarvittavan varmenteen (sertifikaatin) saa helpoimmin Let's Encryptiltä. Apachen tai nginx:n kanssa tuo on suhteellisen helppo pystyttää ja suosittelisin sitä joka tapauksessa, vaikka käyttäisitkin lopulta omaa ohjelmaasi suoraan. Voit sen saman varmenteen yhdistää siihen.

Let's Encryptin käyttöön tarvitset myös domainnimen. Nuo varmenteet eivät toimi ilman sellaista. Sen saat omaan nettiliittymääsi helpoimmin joltain ilmaiselta DDNS-palveluntarjoajalta.
Otsikko: Vs: libhttpserver ja https
Kirjoitti: nm - 08.02.22 - klo:20.47
Kun tiedot nyt kulkevat libserverin ja html-sivun välillä kumpaankin suuntaan, voisi olla mahdollista kokeilla oikean, ulospäinkin näkyvän nettisuvun tekemistä. Tämä tarkoittanee salausta eli https yhteyttä nykyään.

HTTPS ei ole täysin välttämätön, mutta toki nykyisin niin laajasti käytetty, että suojaamattomia HTTP-sivustoja harvemmin enää tulee vastaan. Jos sivulle kirjaudutaan ja lähetetään syötetietoja, HTTPS on kyllä syytä viritellä käyttöön.

Libhttpserverin ohjeessa neuvotaan, miten TLS/SSL-tila kytketään käyttöön: https://github.com/etr/libhttpserver#tlshttps
Libhttpserver pitää myös kääntää libgnutls-tuen kanssa.

Kuten Tomi neuvoi, helppo ja hyvä vaihtoehto olisi terminoida ulkoa saapuva HTTPS-liikenne reverse proxyllä tai load balancerilla, jolloin itse koodattu palvelu voi toimia paikallisesti ilman TLS/SSL-tukea. Myös web-palvelin, kuten Nginx tai Apache hoitaa homman, jos niiden konfigurointi on tuttua.