Pomoc Nginx Proxy Manager i brak możliwości uzyskania certyfikatu.

Wezyr

Moderator
Q's Professional
9 Styczeń 2016
209
33
28
QNAP
TS-x51
Ethernet
1 GbE
Serwus,

Próbuję uruchomić Nginx Proxy Manager. Korzystają z opisu: Nginx Proxy Manager jako kontener na QNAP NAS przygotowałem plik docker-compose zawierajacy:
" version: '3' services: app: image: 'jc21/nginx-proxy-manager:latest' ports: - '980:80' - '981:81' - '9443:443' volumes: - /share/dane/nginx/config.json:/app/config/production.json - /share/dane/nginx/data:/data - /share/dane/nginx/letsencrypt:/etc/letsencrypt db: image: 'jc21/mariadb-aria:latest' environment: MYSQL_ROOT_PASSWORD: 'JakiesHaslo' MYSQL_DATABASE: 'npm' MYSQL_USER: 'JakisUser' MYSQL_PASSWORD: 'JakiesHaslo2' volumes: - /share/nginx/data/mysql:/var/lib/mysql "

sam Nginx działa, przekierowania dla http działają poprawnie, ale pojawia się problem z uzyskaniem certyfikatu SSL od Let`s encrypt. Każda próba kończy się komunikatem "Internal error". Przy próbie wywołania z opcji ssl rezultat jest następujacy:
" Error: Command failed: certbot certonly --config "/etc/letsencrypt.ini" --work-dir "/tmp/letsencrypt-lib" --logs-dir "/tmp/letsencrypt-log" --cert-name "npm-8" --agree-tos --authenticator webroot --email "[EMAIL]mail@mail.pl[/EMAIL]" --preferred-challenges "dns,http" --domains "blablabla.selfhost.eu" Saving debug log to /tmp/letsencrypt-log/letsencrypt.log An unexpected error occurred: requests.exceptions.ConnectionError: HTTPSConnectionPool(host='acme-v02.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by NameResolutionError(": Failed to resolve 'acme-v02.api.letsencrypt.org' ([Errno -3] Temporary failure in name resolution)")) Ask for help or search for solutions at [URL='https://community.letsencrypt.org']Let's Encrypt Community Support[/URL]. See the logfile /tmp/letsencrypt-log/letsencrypt.log or re-run Certbot with -v for more details. at ChildProcess.exithandler (node:child_process:402:12) at ChildProcess.emit (node:events:513:28) at maybeClose (node:internal/child_process:1100:16) at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)"

Selfhost.eu to dostawca ddns, który działa bez problemu z let`s encrypt (na innym nas sprawdziłem i mogę generować certyfikaty i wszystko działa poprawnie). Mam dodatkowo domenę od ovh, ale póki co nie uruchamiam tego.
Co może być źródłem problemu?
 
Nie wypowiadam się odnośnie mysql więc ten fragment zignoruj


YAML:
version: '3.8'

networks:
  qnet-static-eth1-cce8d8:
    external: true

volumes:
  nginx-data:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/share/Container/apps/nginx-proxy-manager/data'
  nginx-letsencrypt:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/share/Container/apps/nginx-proxy-manager/letsencrypt'
  nginx-letsencrypt-log:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/share/Container/apps/nginx-proxy-manager/tmpletsencrypt-log'
  nginx-cs-template:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/share/Container/apps/nginx-proxy-manager/container-station-templates'

services:
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager:latest
    pull_policy: always
    container_name: nginx-proxy-manager
    mac_address: 02:42:39:C4:A0:16
    restart: unless-stopped
    networks:
      - qnet-static-eth1-cce8d8
    environment:
      - TZ=Europe/Warsaw
    volumes:
      - nginx-data:/data
      - nginx-letsencrypt:/etc/letsencrypt
      - nginx-letsencrypt-log:/tmp/letsencrypt-log/
      - nginx-cs-template:/tmp/templates/
    ports:
      - '80:80'
      - '81:81'
      - '443:443'

#Email:    admin@example.com
#Password: changeme

#https://www.ovh.com/auth/api/createToken
#dns_ovh_endpoint = ovh-eu
#dns_ovh_application_key =
#dns_ovh_application_secret =
#dns_ovh_consumer_key =


Jeżli masz domenę ovh i chcesz mieć subdomeny zaoguj się tu dostaniesz zwrotkę zachowaj ją
Control panel - OVHcloud

Ilośc wygenerowanych kluczy jest ograniczona mi się udało wygenerować tam bezpośrednio 5 kluczy z ovh bez problemu zróbisz to raz *.TWOJA_DOMENA.pl

pierwsze co zrób to przekierowanie na NAZWA_NASA_CO_TAM_CHCESZ.TWOJA_DOMENA.pl żeby mieć dostęp do nas bo chyba chcesz
reszta według uznania

ja przypisuję interfejs ngix do specuficznej sieci dockerowej qnet-static-eth1-cce8d8 więc tu



Bash:
$ docker network ls
NETWORK ID     NAME                      DRIVER    SCOPE
864b9e3a49e9   bridge                    bridge    local
fd112dc99761   host                      host      local
a35ba686a488   none                      null      local
1d031d63344b   qnet-dhcp-eth0-6d6da6     qnet      local
39b6e0af5e95   qnet-dhcp-eth1-6d6da6     qnet      local
2a540b088e33   qnet-static-eth0-cce8d8   qnet      local
c0617ff7bb9f   qnet-static-eth1-cce8d8   qnet      local
6c789bedd034   supla_default             bridge    local

który kolwiek z statycznych z premedytacją inny niż nasa możesz to pominąc jeżeli używasz nas'owey adres byle byś miał przypisane na stałe adresy


-> auto update A records on OVH GitHub - slowphil/ovh-dns-updater: simple python script to update A/AAAA DNS records at OVH registrar
 
W nasz rozmowie wyszło ze masz dynamiczne IP widzę że firma pomyślała o takiej potrzebie ;)

Dla tych wszystkich płaczków co stękają na QNAP :p

1696524544262.png
 
Nie znam się to się wypowiem. Po ostatniej aktualizacji CS miałem problem z NameResolutionError (DNS Name Resolution Failure: 'skyhook.sonarr.tv'). Podokładałem info o dns przy aplikacjach, które miałem w docker compose i ruszyło.
 
@3QN - próbuję zastosować twoją konfigurację do nginx i póki co bez sukcesu. Zmieniłem kartę sieciową na swoją, oraz wlasną lokalizację pli konfiguracyjne etc., ale i tak wali błędami jak wściekłe.
" Container Station Docker Compose version v2.14.1-qnap1 Container Station Applications [Container Station] Failed to start application "nginx3". Error message: operateApp action [--project-name nginx3 start] failed: exit status 1: Container nginx-proxy-manager Starting
Error response from daemon: error while mounting volume '/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/volumes/nginx3_nginx-letsencrypt/_data': failed to mount local volume: mount /share/Container/apps/nginx-proxy-manager/letsencrypt:/share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/volumes/nginx3_nginx-letsencrypt/_data, flags: 0x1000: no such file or directory"
 
Właśnie "odkryłem" reverse proxy wbudowane w qnap. Jaka jest różnica pomiędzy nginx a tym "wbudowanym"? Czy w przypadku "wbudowanego" będzie działać certyfikat ssl wygnerowany przez lets encrypt poprzez gui qnap?
 
Nie wiem jaka jest różnica też bym się nie zdziwił jak by qnap używał już istniejącego serwera (nginx,apche,lighttpd...)

Ja w pracy mam kontakt z nginx więc mi troszkę ławie konfigurować cusomowe propertiesy przenieść ale po pobieżnym przejrzeniu How to use Reverse Proxy to improve secure remote connections? wygląda naprawdę dobrze sprawdź jak to działa ze streamingiem, websocketami

[EDIT]
Ok widzę że tam można wybrać czy proxy ma wspierać websocket jedyna rzecz której nie widziałem albo nie potrafiłem to dodać certyfikatu z wildcardem zeby nie generować certów dla wszystkich sub domen czyli *.dupa.pl dla a.dupa.pl b.dupa.pl zamiast generować a.dupa.pl oraz b.dupa.pl ale to było pobierzne klikanie.
Jutro wyjeżdżam boję się cokolwiek klikać :p żeby sobie aktualnej konfiguracji nie zepsuć.
 

Załączniki

  • Zrzut ekranu z 2023-10-09 12-35-04.png
    Zrzut ekranu z 2023-10-09 12-35-04.png
    48,4 KB · Wyświetleń: 27
Póki co sprawdzam jak ten "wbudowany" reverse proxy działa i jest obięcując, ale mam pytania.
- czy generujac certyfikat ssl (System >Bezpieczeństwo>Certyfikat SSL i klucz prywatny) jest on automatycznie dodawany do doment w tym Reverse Proxy (jeżeli dobrze rozumiem nginx tak to miało działać)?
- czy można wygenerować certyfikat ssl dla subdomen w formie *.dupa.pl czy też trzeba generować na zasadzie a.dupa.pl, b.dupa.pl itd..?
 

Załączniki

  • 1696849748656.png
    1696849748656.png
    27,3 KB · Wyświetleń: 23
  • 1696850052964.png
    1696850052964.png
    25,1 KB · Wyświetleń: 23
To nie wiedziałem ok testuj jak podepniesz tego dyns-dns-ovh może zyskasz możliwość rejestracji sub-domen generalnie mi się tam nie udało wygenerować z wbudowanego ale próbowałem 2 razy więc nic mądrego raczej Ci nie napiszę.
 
Zastanawiam się czy nie przedefiniować problemu. W tej chwili jako tako działa mi owncloud z docker, jako tako "wbudowane" reverse proxy, ale zawisłem na etapie ssl oraz obsługi WebDAV poprzez ssl. W teorii owncloud działa na http, ale reverse proxy robi z tego https (tak to interpetuję), ale przy próbie połączenia WebDAV z adresem https jest błąd i nie mogę zestawić połączenia.
 
tak u mnie dużo łatwiej jest wstrzykiwać ssl w nginx niż w tych wszystkich serwisach nexus, jenkins,gitea, etc. tam trzeba strasznie się na namordować i oczywiście cyklicznie odnawiać tak więc *.domena.pl załatwia odświeżanie wszystkich na raz

generalnie generujesz sobie w api ovh klucze (Control panel - OVHcloud) (nic nie zmieniaj jedynie nazwę aplikacji opis reszta nie powinna być modyfikowane tak wiem ze "/domain/zone*" dziwnie nieznajomo wygląda nie ruszaj tego) wklejasz do konfiguracji i tyle koniec pracy

potem w samy nginx-reverse-manager zakładka SSL dodaj nowy z wildcardem wybierz ovh zmień klucze tyle ;)

Oczywiście zakładam że masz domenę w OVH wykupioną

Zrzut ekranu z 2023-10-09 23-25-56.png
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. Certyfikat Lets
  2. nginx proxy manager
  3. Reverse proxy
  4. certyfikat ssl
  5. python
  6. let's encrypt
  7. owncloud
  8. certyfikat