Povežite QGIS s PostGIS-om iza VPN-a: korak po korak
Usmjerite QGIS prema PostGIS-u ili WMS-u iza VPN-a: odvojite tunel od završne točke usluge, zadržite verify-full TLS i provjerite svaku granicu redom.
QGIS čita svaki put do kojeg njegovi pružatelji podataka mogu doći, pa je VPN koji radi samo pola postavke. Tunel daje radnoj površini rutu i pravilo razrješavanja naziva; projektu i dalje trebaju završna točka usluge, protokol pružatelja i vjerodajnice koje će usluga prihvatiti. To su tri odvojena unosa, a upisivanje javnog slušača VPN-a u polje baze podataka nije nijedan od njih. Ovaj vodič prati jedan PostGIS sloj od QGIS obrasca do vraćenog retka i imenuje granicu koju dokazuje svaki korak.
Krenite od sloja, a ne od VPN-a
Svaka vrsta sloja doseže drugu vrstu završne točke. PostGIS sloj otvara PostgreSQL vezu s hostom, portom, bazom podataka i ulogom. WMS ili WFS sloj dohvaća URL usluge i zatim raščlanjuje dokument mogućnosti. Shapefile na mrežnom dijelu treba samo putanju datoteke koju operacijski sustav može otvoriti. Budući da su to tri različita mehanizma, prazan projekt vam ne govori ništa dok ne znate koji od njih otklanjate.
Pitajte GIS operatera za završnu točku, port, potrebni identitet i pravilo pristupa koje vrijedi za vaš račun. Držite ime hosta usluge točno onako kako je izdano kada implementacija ovisi o privatnom DNS-u ili provjerama imena u certifikatu. Ponovna uporaba adrese hosta kopirane iz spremljene veze drugog korisnika najbrži je put do stroja koji odgovara, ali drži stariju bazu podataka.
Rute, dopušteni resursi i razrješavanje naziva pripadaju onome tko upravlja VPN-om. Obrazac izvora podataka ne može instalirati rutu koju profil tunela nikada nije poslao i ne može proširiti pravilo pristupnika. Kada se host razriješi i port odgovori, mrežna strana problema je završena.
Unesite privatnu završnu točku koju je operater izdao
PostgreSQL obrazac u QGIS-u preslikava polja koja libpq očekuje, pa ga ispunite istim redom kojim bi to učinila veza iz naredbenog retka. Usluga i host uzimaju stroj baze podataka, port uzima slušača koji poslužitelj stvarno otvara, a baza podataka uzima određeni katalog umjesto poslužiteljske zadane vrijednosti. Spremite lozinku u konfiguraciju provjere autentičnosti umjesto u datoteku projekta, kako zajednički projekt ne bi nosio vjerodajnicu.
Odvojite dva imena prije nego što išta upišete. Ime pristupnika pripada VPN klijentu, a ime baze podataka QGIS-u, i rijetko su isti host.
VPN gateway: vpn.gis.lab.example (profile only, not a data source)
Database host: db.gis.lab.example:5432 (PostGIS service)
Database name: gis_prod
TLS mode: verify-full
Ako baza podataka stoji na drugom stroju iza pristupnika, ime u obrascu mora biti taj stroj. Privatni DNS kroz tunel čini da ime radi, a projekt koji se razrješava samo dok ste spojeni ponaša se ispravno, a ne kešira loše.
Držite TLS način baze podataka odvojeno od tunela
SSL u nazivu VPN proizvoda opisuje tunel, a ne sesiju baze podataka. QGIS prosljeđuje PostgreSQL SSL način u libpq, a taj način kontrolira provjerava li klijent certifikat poslužitelja i provjerava li ime hosta u njemu. verify-fullradi oboje, zato je to način koji vrijedi zadržati kada certifikat nosi ime usluge.
Spuštanje načina na disable jer je tunel već šifriran uklanja provjeru da je poslužitelj do kojeg ste došli onaj koji ste tražili. Kada provjera ne uspije, uobičajen uzrok je neslaganje imena ili nedostajući korijenski certifikat, a oboje se može popraviti bez slabljenja veze. Usmjerite sslrootcert na CA koji operater objavljuje i držite ime hosta u obrascu identičnim imenu u certifikatu.
Tunel s privatnom rutom i baza podataka s valjanim certifikatom još uvijek mogu pasti na ulozi. Vjerodajnice aplikacije odvojene su od VPN vjerodajnica, a račun koji se autentificira na pristupniku nema nikakva podrazumijevana prava u PostgreSQL-u.
Provjerite svaku granicu redom i pročitajte prvi neuspjeh
Radite od klijenta prema van u fiksnom redu: razrješavanje naziva, TCP dostupnost, TLS, provjera autentičnosti, zatim sam upit. Prvi korak koji ne uspije jedini je koji vrijedi prijaviti, a preskakanje unaprijed daje poruke o pogrešci s granice do koje još niste došli. Četiri naredbe pokrivaju prva četiri koraka.
getent hosts db.gis.lab.example
nc -vz db.gis.lab.example 5432
psql "host=db.gis.lab.example port=5432 dbname=gis_prod sslmode=verify-full" -c 'select 1'
curl -sS 'https://wms.gis.lab.example/ows?service=WMS&request=GetCapabilities' | head -c 200
Prazan odgovor od getent problem je razrješavanja, a ne problem baze podataka. Odbijen ili istekao nc znači da nedostaje ruta ili pravilo firewall-a, što je popravak na strani pristupnika. TLS pogreška od psql znači da su certifikat ili ime pogrešni, dok password authentication failed znači da ste došli do PostgreSQL-a i problem je u vjerodajnici. Za WMS sloj poziv curl vraća XML mogućnosti koji bi QGIS raščlanio, pa HTML stranica za prijavu u tom izlazu odmah objašnjava prazan sloj.
PostgreSQL pogreška dobra je vijest u usporedbi s istekom vremena. Dokazuje da je odredište odgovorilo, što premješta tiket s mrežnog tima na administratora baze podataka ili GIS-a. Zadržavanje te razlike u izvještaju štedi jedno putovanje.
Kada se projekt otvori s praznim slojevima
Unutar QGIS-a provjerite spremljeni izvor sloja prije nego bilo što ponovno unesete. Svojstva sloja pokazuju točan niz veze koji je projekt spremio, a dvostruki unos veze sa starijim hostom čest je ostatak prethodne uredske mreže. Ponovno učitavanje projekta nakon popravka veze ne čita uvijek pružatelja iznova, zato uklonite sloj i dodajte ga ponovno iz ispravljene veze.
Zatim potvrdite da je konfiguracija provjere autentičnosti ona pridružena sloju, a ne samo prisutna na popisu. Sloj spremljen s drugom konfiguracijom provjere autentičnosti tiho pada u ploči preglednika, dok samostalni psql test prolazi.
Kada se sloj učita, spremite projekt s relativnim putanjama samo za datoteke i držite veze usluga nazvane po njihovoj završnoj točki. Sljedeća osoba koja naslijedi projekt tada može reći koji je host očekivao pokvareni sloj bez otvaranja tiketa.