QGIS bere vsako pot, ki jo njegovi ponudniki podatkov dosežejo, zato je delujoč VPN le polovica nastavitve. Tunel da namizju pot in pravilo razreševanja imen; projekt še vedno potrebuje končno točko storitve, protokol ponudnika in poverilnice, ki jih bo storitev sprejela. To so tri ločena polja, vpis javnega poslušalca VPN v polje zbirke podatkov pa ni nobeno od njih. Ta vodič sledi eni plasti PostGIS od obrazca QGIS do vrnjene vrstice in poimenuje mejo, ki jo dokaže vsak korak.

Začnite s plastjo, ne z VPN

Vsaka vrsta plasti doseže drugačno vrsto končne točke. Plast PostGIS odpre povezavo PostgreSQL z gostiteljem, vrati, zbirko podatkov in vlogo. Plast WMS ali WFS pridobi URL storitve in nato razčleni dokument zmogljivosti. Datoteka shapefile v omrežni delitvi potrebuje le pot do datoteke, ki jo operacijski sistem lahko odpre. Ker gre za tri različne mehanizme, prazen projekt ne pove ničesar, dokler ne veste, katerega odpravljate.

Vprašajte upravljavca GIS za končno točko, vrata, zahtevano identiteto in pravilo dostopa, ki velja za vaš račun. Ime gostitelja storitve ohranite natanko tako, kot je bilo izdano, ko je uvedba odvisna od zasebnega DNS ali od preverjanja imena v potrdilu. Ponovna uporaba naslova gostitelja, kopiranega iz shranjene povezave drugega uporabnika, je najhitrejša pot do stroja, ki se odziva, a hrani starejšo zbirko podatkov.

Poti, dovoljeni viri in razreševanje imen pripadajo tistemu, ki upravlja VPN. Obrazec vira podatkov ne more namestiti poti, ki je profil tunela ni nikoli poslal, in ne more razširiti pravila prehoda. Ko se gostitelj razreši in vrata odgovorijo, je omrežna stran težave zaključena.

Vnesite zasebno končno točko, ki jo je izdal upravljavec

Obrazec PostgreSQL v QGIS zrcali polja, ki jih pričakuje libpq, zato ga izpolnite v istem vrstnem redu, kot bi to storila povezava iz ukazne vrstice. Storitev in gostitelj prevzameta stroj zbirke podatkov, vrata prevzamejo poslušalca, ki ga strežnik dejansko odpre, zbirka podatkov pa prevzame določen katalog namesto privzete vrednosti strežnika. Geslo shranite v konfiguraciji preverjanja pristnosti in ne v datoteki projekta, da skupni projekt ne nosi poverilnic.

Ločite obe imeni, preden karkoli vtipkate. Ime prehoda pripada odjemalcu VPN, ime zbirke podatkov pa QGIS, in le redko gre za istega gostitelja.

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

Če je zbirka podatkov na drugem stroju za prehodom, mora biti ime v obrazcu ta stroj. Zasebni DNS skozi tunel je tisto, kar ime oživi, in projekt, ki se razreši samo med povezavo, se obnaša pravilno, ne pa da slabo predpomni.

Ohranite način TLS zbirke podatkov ločen od tunela

SSL v imenu izdelka VPN opisuje tunel, ne seje zbirke podatkov. QGIS posreduje način SSL PostgreSQL v libpq, ta način pa nadzoruje, ali odjemalec preveri potrdilo strežnika in ali preveri ime gostitelja v njem. verify-fullnaredi oboje, zato je to način, ki ga je vredno obdržati, ko potrdilo nosi ime storitve.

Znižanje načina na disable ker je tunel že šifriran odstrani preverjanje, da je doseženi strežnik tisti, ki ste ga zahtevali. Ko preverjanje spodleti, je običajen vzrok neujemanje imena ali manjkajoče korensko potrdilo, in oboje je mogoče popraviti brez slabitve povezave. Usmerite sslrootcert na CA, ki jo objavi upravljavec, in ohranite ime gostitelja v obrazcu enako imenu v potrdilu.

Tunel z zasebno potjo in zbirka podatkov z veljavnim potrdilom lahko še vedno spodletita na vlogi. Poverilnice aplikacije so ločene od poverilnic VPN, in račun, ki se preveri na prehodu, nima nobenih implicitnih pravic v PostgreSQL.

Preizkusite vsako mejo po vrsti in preberite prvo napako

Delajte od odjemalca navzven v ustaljenem vrstnem redu: razreševanje imen, dosegljivost TCP, TLS, preverjanje pristnosti in nato sama poizvedba. Prvi korak, ki spodleti, je edini, o katerem je vredno poročati, preskakovanje naprej pa daje sporočila o napaki z meje, do katere še niste prišli. Štirje ukazi pokrijejo prve štiri korake.

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

Prazen odgovor od getent je težava razreševanja, ne težava zbirke podatkov. Zavrnjen ali potekel nc pomeni, da manjka pot ali pravilo požarnega zidu, kar je popravek na strani prehoda. Napaka TLS od psql pomeni, da sta potrdilo ali ime napačna, medtem ko password authentication failed pomeni, da ste dosegli PostgreSQL in je težava v poverilnicah. Za plast WMS klic curl vrne XML zmogljivosti, ki bi ga QGIS razčlenil, zato HTML prijavna stran v tem izhodu takoj pojasni prazno plast.

Napaka PostgreSQL je dobra novica v primerjavi s potekom časa. Dokazuje, da se je cilj odzval, kar premakne zahtevek z omrežne ekipe na skrbnika zbirke podatkov ali GIS. Ohranjanje te razlike v poročilu prihrani en krog.

Ko se projekt odpre s praznimi plastmi

V QGIS preverite shranjeni vir plasti, preden karkoli znova vnesete. Lastnosti plasti pokažejo natančen niz povezave, ki ga je projekt shranil, podvojen vnos povezave s starejšim gostiteljem pa je pogost ostanek prejšnjega pisarniškega omrežja. Ponovno nalaganje projekta po popravku povezave ne prebere vedno znova ponudnika, zato odstranite plast in jo znova dodajte iz popravljene povezave.

Nato potrdite, da je konfiguracija preverjanja pristnosti tista, ki je pritrjena na plast, ne le tista, ki je na seznamu. Plast, shranjena z drugo konfiguracijo preverjanja pristnosti, tiho spodleti v plošči brskalnika, medtem ko samostojni preizkus psql uspe.

Ko se plast naloži, shranite projekt z relativnimi potmi samo za datoteke in ohranite povezave storitev poimenovane po njihovi končni točki. Naslednja oseba, ki podeduje projekt, lahko potem pove, katerega gostitelja je pričakovala pokvarjena plast, ne da bi odprla zahtevek.

Sorodni članki