Gjest Sletttet+98134 Skrevet 7. januar 2020 Del Skrevet 7. januar 2020 (endret) https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md php trenger du ikke om du bare skal bruke den til reverse proxy. om du kjører hass.io så kan du evt legge til ngnix rett i home assistant. Kjører ngnix på en ubuntu-vm selv så kjenner ikke nøyaktig fremgangsmåten, men vet mange gjør det sånn. certbot er også kjekt for å få sertifikater på plass. Slik ser min home.domene.no ut: server { listen 443 ssl; server_name home.domene.no; location / { proxy_pass http://192.168.0.105:8123/; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /api/websocket { proxy_pass http://192.168.0.105:8123/api/websocket; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } Endret 7. januar 2020 av Sletttet+98134 Lenke til kommentar
norsemanGrey Skrevet 8. januar 2020 Forfatter Del Skrevet 8. januar 2020 On 1/7/2020 at 5:25 PM, Fleskefjeset said: https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md php trenger du ikke om du bare skal bruke den til reverse proxy. om du kjører hass.io så kan du evt legge til ngnix rett i home assistant. Kjører ngnix på en ubuntu-vm selv så kjenner ikke nøyaktig fremgangsmåten, men vet mange gjør det sånn. certbot er også kjekt for å få sertifikater på plass. Slik ser min home.domene.no ut: server { listen 443 ssl; server_name home.domene.no; location / { proxy_pass http://192.168.0.105:8123/; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /api/websocket { proxy_pass http://192.168.0.105:8123/api/websocket; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } Takk for tilbakemelding. Jeg tenker jeg kanskje i først omgang skal forsøke å sette opp Nginx med en docker på Ubuntu serveren, hvis jeg klarer å få det til. Ang. sertifikater så jeg jeg forsøkt å finne litt ut av hvordan dette gjøres? Har det noe å si hvor man har domenet registrert? Jeg har mitt hos DomeneShop. Men jeg har lest at hvis man skal bruke Certbot må man sette det opp med en DNS leverandør som støtter Certbot. Jeg må si jeg ikke helt skjønner hva dette betyr i praksis. Lenke til kommentar
NULL Skrevet 8. januar 2020 Del Skrevet 8. januar 2020 (endret) Certbot som jeg forstår det er bare et løsning for automatisk fornyelse av LEts Encrypt-sertifikater - en praktisk løsning siden sertifikatene til Lets Encrypt vel fortsatt har ganske kort holdbarhet. Hvor domenet ditt er registrert har ikke noe å si. Har selv brukt Lets Encrypt på tjenester som har kjørt på domener via Domeneshop. For Certbot o.l. løsninger gjøres det vel en DNS-challange i forbindelse med fornyelse. Men dette er vel en tjeneste bare du skal aksessere. Det er vel ikke noe problem at man får en sikkerhetsadvarsel i nettleseren og legger inn en exception i nettleseren. Gjør du dette kan du godt bare bruke en self-sign-sertifikat (evt. installere sertifikatet på klientene du vanligvis bruker). Da unngår du bryet med fornyelse. Hadde det vært en webserver som skulle være "offentlig åpen for besøkende" hadde dette naturligvis ikke vært en god løsning. Endret 8. januar 2020 av NULL 1 Lenke til kommentar
process Skrevet 8. januar 2020 Del Skrevet 8. januar 2020 For http challenge holder det med web server, for dns challenge må du ha en dns leverandør som støtter dynamiske oppdateringer - sistnevnte er kun nødvendig dersom du skal ha wildcard sertifikat. Lenke til kommentar
norsemanGrey Skrevet 8. januar 2020 Forfatter Del Skrevet 8. januar 2020 1 hour ago, NULL said: Certbot som jeg forstår det er bare et løsning for automatisk fornyelse av LEts Encrypt-sertifikater - en praktisk løsning siden sertifikatene til Lets Encrypt vel fortsatt har ganske kort holdbarhet. Hvor domenet ditt er registrert har ikke noe å si. Har selv brukt Lets Encrypt på tjenester som har kjørt på domener via Domeneshop. For Certbot o.l. løsninger gjøres det vel en DNS-challange i forbindelse med fornyelse. Men dette er vel en tjeneste bare du skal aksessere. Det er vel ikke noe problem at man får en sikkerhetsadvarsel i nettleseren og legger inn en exception i nettleseren. Gjør du dette kan du godt bare bruke en self-sign-sertifikat (evt. installere sertifikatet på klientene du vanligvis bruker). Da unngår du bryet med fornyelse. Hadde det vært en webserver som skulle være "offentlig åpen for besøkende" hadde dette naturligvis ikke vært en god løsning. Ja foreløbig er det bare jeg som skal bruke de serverne som ligger innenfor nettverket, men jeg vil gjerne gjøre dette for å lære. En ting jeg sliter lit med å forstå oppi dette er hva som er forskjellen på domene leverandøren og DNS leverandøren (er disse ofte den samme?) da det er mye blandede referanser til begge i det jeg leser rundt sertifiserings-prosessen. Leser bl.a. dette på Certbot sine sider: Quote DNS credentials are a password or other kind of secret (such as an API key) that your DNS provider lets you use to change the contents of your DNS records. They are usually issued by your domain registrar (or by another DNS provider, if your DNS provider isn’t the same as your registrar). DNS credentials are a sensitive kind of secret because they can be used to take over your site completely. You should never share these credentials publicly or with an unauthorized person. It can be OK to provide a copy of them to Certbot to let it perform DNS validation automatically, since it runs locally on your machine. Er dette noen jeg kan/må få fra f.eks. Domeneshop? 1 hour ago, process said: For http challenge holder det med web server, for dns challenge må du ha en dns leverandør som støtter dynamiske oppdateringer - sistnevnte er kun nødvendig dersom du skal ha wildcard sertifikat. Som sagt vet jeg ikke hvem som er DNS leverandøren, men det er kanskje Domeneshop, som også er domene leverandør? Jeg vil gjerne prøve å få til et Wildcard sertifikat da jeg ønsker å ha flere sub-domener. Lenke til kommentar
process Skrevet 8. januar 2020 Del Skrevet 8. januar 2020 (endret) 31 minutes ago, norsemanGrey said: Ja foreløbig er det bare jeg som skal bruke de serverne som ligger innenfor nettverket, men jeg vil gjerne gjøre dette for å lære. En ting jeg sliter lit med å forstå oppi dette er hva som er forskjellen på domene leverandøren og DNS leverandøren (er disse ofte den samme?) da det er mye blandede referanser til begge i det jeg leser rundt sertifiserings-prosessen. Leser bl.a. dette på Certbot sine sider: Er dette noen jeg kan/må få fra f.eks. Domeneshop? Som sagt vet jeg ikke hvem som er DNS leverandøren, men det er kanskje Domeneshop, som også er domene leverandør? Jeg vil gjerne prøve å få til et Wildcard sertifikat da jeg ønsker å ha flere sub-domener. Stemmer. Domeneshop er i ditt tilfelle registrar og dns leverandør. For å få til dns-01 challenge for wildcard kan du forsøke en modul de vedlikeholder https://github.com/domeneshop/certbot-dns-domeneshop, men det hele er ganske nytt og under utvikling. Vil anbefale http challenge I første omgang, det er uproblematisk å få flere sertifikater på denne måten. Husk at ip adressen din kan endre seg på hjemmelinje og at du må oppdatere dns. Domeneshop har ingen dynamisk dns støtte, men det ser ut som det går an å snekre sammen noe som går periodisk evt på dhcp events som oppdaterer vha det nye domeneshop APIet. Edit: autocorrect Endret 8. januar 2020 av process Lenke til kommentar
process Skrevet 8. januar 2020 Del Skrevet 8. januar 2020 1 minute ago, process said: Stemmer. Domeneshop er i ditt tilfelle registrar og dns leverandør. For å få til dns-01 challenge for wildcard kan du forsøke en modul de vedlikeholder https://github.com/domeneshop/certbot-dns-domeneshop, men det hele er ganske nytt og under utvikling. Vil anbefale http challenge I første omgang, det er uproblematisk å få flere sertifikater på denne måten. Husk at ip adressen din kan endre seg på hjemmelinje og at du må oppdatere dns. Domeneshop har ingen dynamisk dns støtte, men det ser ut som det går an å snekre sammen noe som går periodisk evt på dhcp events som oppdaterer vha det nye domeneshop APIet. Edit: autocorrect Lenke til kommentar
Gjest Sletttet+98134 Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 norsemanGrey skrev (11 timer siden): Takk for tilbakemelding. Jeg tenker jeg kanskje i først omgang skal forsøke å sette opp Nginx med en docker på Ubuntu serveren, hvis jeg klarer å få det til. Ang. sertifikater så jeg jeg forsøkt å finne litt ut av hvordan dette gjøres? Har det noe å si hvor man har domenet registrert? Jeg har mitt hos DomeneShop. Men jeg har lest at hvis man skal bruke Certbot må man sette det opp med en DNS leverandør som støtter Certbot. Jeg må si jeg ikke helt skjønner hva dette betyr i praksis. Certbot fornyer Let's Encrypt-sertifikatet ditt i god tid før det utløper automatisk, så du slipper å tenke på det. Normalt har LE-sertifikater utløp etter kun 90 dager, så det er en stor fordel å få det automatisert. Som du har fått forklart over er det leverandør-uavhengig. Svært trivielt å sette opp, har hatt det kjørende noen år det har aldri feilet heller. Som nevnt over så er det en teoretisk mulighet for at wan-ipen din endres slik at du må oppdatere i dns-settings hos domeneshop. Min erfaring (med Altibox) er at det sjeldent skjer, så jeg har ikke hatt noe behov for å automatisere dette. I løpet av de fire årene jeg har hatt Altibox har jeg hatt to forskjellige ip-er, og bytte skjedde ifbm. planlagt nedetid en hel natt. Dette er nå over to år siden og jeg har fremdeles samme ip som jeg hadde rett etter vedlikeholdet var ferdig. Ta også en titt på uptimerobot, den er fin om du vil få mail når noe går ned (eller du bytter ip). Lenke til kommentar
NULL Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 Når jeg tidligere kjørte med en public webserver hjemme og ikke hadde fast IP, husker jeg at jeg vurderte å prøve å bruke Selenium e-l. for å lage et script som eventuelt oppdaterte automatisk hos Domeneshop. Både hos Altibox og Telenor har jeg opplevd å ha samme IP over veldig lang tid. Gjerne må det være litt nedetid på aksessen for at ip skulle endre seg. Lenke til kommentar
process Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 Jeg opplever sjelden at IP adressen endrer seg selv, men der er greit å kjenne til at det kan skje og at hjemmetjenester derfor kan bli utilgjengelige. Selv er jeg nok litt yrkesskadet, samt at jeg er mye på reise, så får litt fnatt når slikt ikke er automatisert. For andre er det akseptabelt ? Lenke til kommentar
NULL Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 Om man ikke har automatikk for oppdatering, kan det jo være greit å f.eks. kjøre dyndns i tillegg som en nødløsning i tilfelle ip endrer seg. Da kan man også remote finne ut hva ny ip er og endre den hos Domeneshop. Litt usikker på hvordan ISP-ene gjør det når det gjelder IPv6, og om man der har hatt mulighet for fast IP. Med det sagt, enkelte operatører tilbyr jo fast ip(v4) for en ganske liten ekstrasum. 1 Lenke til kommentar
norsemanGrey Skrevet 9. januar 2020 Forfatter Del Skrevet 9. januar 2020 Takker igjen for my bra input. Jeg fortsetter å lese en del og det kan virke som om dette kan være noe jeg er på utkikk etter for å få til reverce proxy og SSL sertifikater? https://github.com/linuxserver/docker-letsencrypt Jeg er fortsatt usikker på hvordan jeg skal gjøre dette i praksis opp mot Domainshop. Alle plasser jeg leser om dette så virker det som om fremgangsmåten er forskjellig og jeg klarer derfor ikke få noe godt tak på hva jeg trenger å gjøre. @process nevner at de har en plugin. Skal denne da settes opp på letsenctypt docker imaget på noen måte? Lenke til kommentar
Håvard Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 norsemanGrey skrev (1 time siden): Takker igjen for my bra input. Jeg fortsetter å lese en del og det kan virke som om dette kan være noe jeg er på utkikk etter for å få til reverce proxy og SSL sertifikater? https://github.com/linuxserver/docker-letsencrypt Jeg er fortsatt usikker på hvordan jeg skal gjøre dette i praksis opp mot Domainshop. Alle plasser jeg leser om dette så virker det som om fremgangsmåten er forskjellig og jeg klarer derfor ikke få noe godt tak på hva jeg trenger å gjøre. @process nevner at de har en plugin. Skal denne da settes opp på letsenctypt docker imaget på noen måte? Hos Domeneshop må du endre DNS-oppslaget til å peke til din IP-addresse. Så setter du opp Nginx på din lokale server til å fungere som en reverse proxy som beskrevet her tidligere. Når det er gjort kan du begynne å tenke på SSL-sertifikat. Da er Letsencrypt en grei vei å gå. Lenke til kommentar
norsemanGrey Skrevet 9. januar 2020 Forfatter Del Skrevet 9. januar 2020 19 minutes ago, Håvard said: Hos Domeneshop må du endre DNS-oppslaget til å peke til din IP-addresse. Så setter du opp Nginx på din lokale server til å fungere som en reverse proxy som beskrevet her tidligere. Når det er gjort kan du begynne å tenke på SSL-sertifikat. Da er Letsencrypt en grei vei å gå. Ja det gjør den allerede. Jeg har satt opp *.mittdomene.no -> <min externe IP> Jeg har nå også vært i kontakt med Domeneshop og fått API nøkler for bruk med DNS valideringen. Regner med ma da må bruke Domeneshop sin plugging (sammen med Let's Encrypt / Certbot ?) https://github.com/domeneshop/certbot-dns-domeneshop. Men hvordan jeg går frem for å gjøre dette har jeg fortsatt ikke oversikt over. Så du anbefaler å ta hele Nginx prosessen først? E.g. sette oppe en docker med Nginx som reverce proxy, og så sette opp en egen docker med Let's Encrypt / Certbot når dette fungerer? Lenke til kommentar
process Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 Re ipv6: Jeg har tidligere fått dynamisk prefix fra get, men CD/telenor nå har det ikke endret seg på en stund. Hvis du har PD internt så må du håndtere DNS oppdateringer på hver enkelt vert i motsetning til i router, noe som plutselig gjør at du også må ha nøkler til dns på hver enkelt vert dersom du vil gjøre det dynamisk. Det kan nå løses med begrenset scope og individuelle nøkler ettersom du uansett har 'tapt' hvis noen har root verten, men det er noen ting some tvinger en til å tenke annerledes ift dynamisk dns med ipv6. Re docker, nginx og certbot så må certbot og nginx kjøre i samme container - nginx skal jo ha sertifikatene. Jeg hadde nok derimot ikke kjørt docker på 80/443, men satt opp nginx/certbot revers proxy på selve ubuntu maskinen som kan være proxy for ulike docker containere og vurdert det som en del av docker host oppsettet. Hvordan domeneshop plugin fungerer vet jeg ikke ser ut som den kan installeres via pip. Ville som sagt forsøkt http challenge først (finnes sikkert masse dokumentasjon for nginx/certbot på ubuntu) og så deretter forsøke med dns-01 vha domeneshop sin plugin. Lenke til kommentar
norsemanGrey Skrevet 9. januar 2020 Forfatter Del Skrevet 9. januar 2020 2 minutes ago, process said: Re docker, nginx og certbot så må certbot og nginx kjøre i samme container - nginx skal jo ha sertifikatene. Jeg hadde nok derimot ikke kjørt docker på 80/443, men satt opp nginx/certbot revers proxy på selve ubuntu maskinen som kan være proxy for ulike docker containere og vurdert det som en del av docker host oppsettet. Sikker at de må kjøre i samme container? Virker mest fornuftig, men kan man ikke dele volum e.l. for å få det til å fungere? Hvorfor ville du ikke hatt nginx/certbot revers proxy i en egen docker. Er ikke dette mest ryddig. Uansett skal det for min del kunne fungere for ting som ikke ligger i docker containere på Ubuntu serveren også. Bl.a. Hass.io som jeg har gående på en RPi. Jeg vil at dette skal fungere for alle web-resurser som ligger innenfor mitt nettverk som skal aksesseres utenfra. Uavhengig av hvilken fysisk maskin det går på. Som jeg har skjønt det er dette mulig og at Nginx kan ligge i "forkant" av alt som ligger på det interne nettverket som man ønsker å mappe mot sub-domener. Lenke til kommentar
process Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 (endret) Du kan løse det med et shared volum, men du må finne en måte å laste nginx på nytt igjen når certbot har kjørt en fornyelse, selv ville jeg logisk gruppert dem. Hvorfor ikke? Videre vurderer jeg en reversproxy som en del av infrastrukturen til dockermiljøet, det være seg en lastbalanserer eller en nginx instans. Det er ikke fasiter her, du vurderer selv hvilken arkitektur som fungerer for deg, men jeg ville altså gjort det på denne måten. En annen ting er at du må kjøre containeren som root for å kunne binde til 80/443. Nginx løser dette for ditt nettverk uansett hvordan det kjører forutsatt at docker NATer ut bak en lokal adresse. Dersom du også skal nå andre verter på nettverket vha denne nginx proxyen så eliminerer du også docker som en feilkilde for disse vertene og isolerer feildomener (dersom du kjører det på verten). Og så en liten disclaimer, jeg benytter containere utstrakt, men ikke via docker og ikke på standalone hosts på denne måten. edit: s/feildomenener/feildomener Endret 9. januar 2020 av process Lenke til kommentar
Gjest Sletttet+98134 Skrevet 9. januar 2020 Del Skrevet 9. januar 2020 Siden du allerede kjører docker i en separat vm, hvorfor ikke droppe pien og heller kjøre hass.io i en container? Hassio er jo containerbasert. Da slipper du feil på SD-kort som du garantert vil få om du kjører pien på det. Fyrer du opp nginx-pluginen via Hass.io så er det også en egen container. Lenke til kommentar
norsemanGrey Skrevet 15. januar 2020 Forfatter Del Skrevet 15. januar 2020 (endret) Har fått linuxserver.io til å legge in Domeneshop sin DNS plugin i sin Let's Encrypt nginx container Prøver å teste ut nå, men kommer ikke helt i mål. Ser ut til at API nøkkel fungerer, men får feilmelding på DNS challenge. Se log under: Obtaining a new certificate Performing the following challenges: dns-01 challenge for <mitt domene> dns-01 challenge for <mitt domene> Unsafe permissions on credentials configuration file: /config/dns-conf/domeneshop.ini Waiting 60 seconds for DNS changes to propagate Waiting for verification... Challenge failed for domain <mitt domene> Challenge failed for domain <mitt domene> dns-01 challenge for <mitt domene> dns-01 challenge for <mitt domene> Cleaning up challenges Some challenges have failed. IMPORTANT NOTES: - The following errors were reported by the server: Domain: <mitt domene> Type: unauthorized Detail: No TXT record found at _acme-challenge.<mitt domene> Domain: <mitt domene> Type: unauthorized Detail: No TXT record found at _acme-challenge.<mitt domene> To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address. Lagde docker container med følgende docker-compose fil: version: '2' services: letsencrypt: image: linuxserver/letsencrypt container_name: letsencrypt cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/Oslo - URL=<mitt domene> - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=domeneshop - EMAIL=<min email> - DHLEVEL=4096 ports: - 443:443 volumes: - /home/<min bruker>/appdata/letsencrypt/config:/config restart: unless-stopped Noen andre som har lyst til å prøve seg? Hadde vært moro å få dette til å fungere! Endret 15. januar 2020 av norsemanGrey Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå