QGIS csatlakoztatása PostGIS-hez VPN mögött: lépésről lépésre
Irányítsa a QGIS-t VPN mögötti PostGIS vagy WMS felé: válassza külön az alagutat a szolgáltatás végpontjától, tartsa meg a verify-full TLS-t, és tesztelje a határokat sorrendben.
A QGIS minden utat beolvas, amelyet adatszolgáltatói elérnek, így egy működő VPN csak a beállítás fele. Az alagút útvonalat és névfeloldási szabályt ad az asztali gépnek; a projektnek továbbra is kell a szolgáltatás végpontja, a szolgáltató protokollja és az a hitelesítő adat, amelyet a szolgáltatás elfogad. Ez három külön mező, és a VPN nyilvános figyelőjének adatbázis-mezőbe írása egyik sem. Ez a bemutató egyetlen PostGIS-réteget követ a QGIS űrlaptól a visszakapott sorig, és megnevezi azt a határt, amelyet minden lépés bizonyít.
A rétegnél kezdje, ne a VPN-nél
Minden rétegtípus másféle végpontot ér el. A PostGIS-réteg PostgreSQL-kapcsolatot nyit hoszttal, porttal, adatbázissal és szereppel. A WMS- vagy WFS-réteg lekér egy szolgáltatás-URL-t, majd feldolgoz egy képességeket leíró dokumentumot. A hálózati megosztáson lévő shapefile csak egy fájlútvonalat igényel, amelyet az operációs rendszer meg tud nyitni. Mivel ez három különböző mechanizmus, az üres projekt semmit sem mond, amíg nem tudja, melyiket hibakeresi.
Kérje meg a GIS-üzemeltetőt a végpontra, a portra, a szükséges identitásra és a fiókjára vonatkozó hozzáférési szabályra. Tartsa a szolgáltatás hosztnevét pontosan úgy, ahogy kiadták, amikor a telepítés privát DNS-től vagy a tanúsítvány névellenőrzésétől függ. Egy másik felhasználó mentett kapcsolatából másolt hosztcím újrafelhasználása a leggyorsabb út egy olyan géphez, amely válaszol, de régebbi adatbázist tart.
Az útvonalak, az engedélyezett erőforrások és a névfeloldás a VPN-t üzemeltetőé. Egy adatforrás-űrlap nem tud olyan útvonalat telepíteni, amelyet az alagútprofil soha nem küldött el, és nem tudja kiszélesíteni az átjáró szabályát. Amikor a hoszt feloldódik és a port válaszol, a probléma hálózati oldala elkészült.
Adja meg az üzemeltető által kiadott privát végpontot
A QGIS PostgreSQL-űrlapja azokat a mezőket tükrözi, amelyeket a libpq vár, ezért ugyanabban a sorrendben töltse ki, ahogy egy parancssori kapcsolat tenné. A szolgáltatás és a hoszt az adatbázis-gépet kapja, a port azt a figyelőt kapja, amelyet a kiszolgáló valóban megnyit, az adatbázis pedig a konkrét katalógust a kiszolgáló alapértéke helyett. A jelszót hitelesítési konfigurációban tárolja, ne a projektfájlban, hogy a megosztott projekt ne hordozzon hitelesítő adatot.
Válassza szét a két nevet, mielőtt bármit beír. Az átjáró neve a VPN-kliensbe való, az adatbázisé pedig a QGIS-ba, és ezek ritkán ugyanaz a hoszt.
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
Ha az adatbázis az átjáró mögötti másik gépen van, az űrlapon szereplő névnek annak a gépnek kell lennie. Az alagúton át elérhető privát DNS az, ami a nevet működésre bírja, és az a projekt, amely csak kapcsolódás közben oldódik fel, helyesen viselkedik, nem pedig rosszul gyorsítótáraz.
Tartsa az adatbázis TLS-módját külön az alagúttól
A VPN-termék nevében szereplő SSL az alagutat írja le, nem az adatbázis-munkamenetet. A QGIS átadja a PostgreSQL SSL-módját a libpq-nak, és ez a mód szabályozza, hogy az ügyfél ellenőrzi-e a kiszolgáló tanúsítványát, és hogy vizsgálja-e a benne lévő hosztnevet. verify-fullmindkettőt megteszi, ezért érdemes megtartani, amikor a tanúsítvány a szolgáltatás nevét hordozza.
A mód disable szintre csökkentése, mert az alagút már titkosított, eltávolítja annak ellenőrzését, hogy az elért kiszolgáló a kért kiszolgáló-e. Amikor az ellenőrzés meghiúsul, a szokásos ok névegyezés hiánya vagy hiányzó gyökértanúsítvány, és mindkettő javítható a kapcsolat gyengítése nélkül. Irányítsa a sslrootcert-t az üzemeltető által közzétett CA-ra, és tartsa az űrlapon lévő hosztnevet azonosnak a tanúsítványban lévő névvel.
Egy privát útvonalú alagút és egy érvényes tanúsítványú adatbázis még mindig elbukhat a szerepen. Az alkalmazás hitelesítő adatai különválnak a VPN-étől, és az átjárónál hitelesítő fióknak nincs hallgatólagos joga a PostgreSQL-ben.
Tesztelje a határokat sorrendben, és olvassa el az első hibát
Az ügyféltől kifelé haladjon rögzített sorrendben: névfeloldás, TCP-elérhetőség, TLS, hitelesítés, majd maga a lekérdezés. Az első elbukó lépés az egyetlen, amelyről érdemes jelenteni, és az előreszaladás olyan határ hibaüzeneteit adja, amelyet még nem ért el. Négy parancs fedi le az első négy lépést.
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
Üres válasz a getent parancstól névfeloldási probléma, nem adatbázis-probléma. Egy elutasított vagy lejárt nc azt jelenti, hogy hiányzik egy útvonal vagy egy tűzfal-szabály, ami az átjáró oldalán javítandó. A psql TLS-hibája azt jelenti, hogy a tanúsítvány vagy a név hibás, míg a password authentication failed azt, hogy elérte a PostgreSQL-t, és a hitelesítő adat a probléma. WMS-réteg esetén a curl hívás visszaadja azt a képesség-XML-t, amelyet a QGIS feldolgozna, így az abban a kimenetben megjelenő HTML bejelentkező oldal azonnal megmagyarázza az üres réteget.
A PostgreSQL-hiba jó hír egy időtúllépéshez képest. Bizonyítja, hogy a cél válaszolt, ami a hibajegyet a hálózati csapattól az adatbázis- vagy GIS-adminisztrátorhoz mozgatja. Ennek a különbségnek a megtartása a jelentésben egy kör utat spórol.
Amikor a projekt üres rétegekkel nyílik meg
A QGIS-en belül ellenőrizze a réteg mentett forrását, mielőtt bármit újra beírna. A réteg tulajdonságai mutatják a projekt által mentett pontos kapcsolati karakterláncot, és a régebbi hoszttal rendelkező duplikált kapcsolatbejegyzés egy korábbi irodai hálózat gyakori maradéka. Egy kapcsolat javítása utáni újratöltés nem mindig olvassa újra a szolgáltatót, ezért távolítsa el a réteget, és adja hozzá újra a javított kapcsolatból.
Ezután erősítse meg, hogy a hitelesítési konfiguráció a réteghez csatolt, nem csak a listában szereplő. Egy másik hitelesítési konfigurációval mentett réteg csendben elbukik a böngészőpanelen, miközben az önálló psql teszt átmegy.
Amikor a réteg betöltődik, mentse a projektet relatív útvonalakkal csak a fájlokhoz, és tartsa a szolgáltatáskapcsolatokat a végpontjukról elnevezve. A projektet öröklő következő ember így meg tudja mondani, melyik hosztot várta egy törött réteg, anélkül hogy jegyet nyitna.