QGIS lukee minkä tahansa polun, johon sen datantarjoajat yltävät, joten käynnissä oleva VPN on vain puolet asetuksesta. Tunneli antaa työpöydälle reitin ja nimien ratkaisukäytännön; projekti tarvitsee yhä palvelun päätepisteen, tarjoajan protokollan ja ne tunnistetiedot, jotka palvelu hyväksyy. Ne ovat kolme erillistä kenttää, eikä VPN:n julkisen kuuntelijan kirjoittaminen tietokantakenttään ole mitään niistä. Tämä läpikäynti seuraa yhtä PostGIS-tasoa QGIS-lomakkeesta palautettuun riviin ja nimeää rajan, jonka kukin vaihe todistaa.

Aloita tasosta, älä VPN:stä

Jokainen tasotyyppi saavuttaa erilaisen päätepisteen. PostGIS-taso avaa PostgreSQL-yhteyden isäntänimellä, portilla, tietokannalla ja roolilla. WMS- tai WFS-taso hakee palvelun URL:n ja jäsentää sitten ominaisuusasiakirjan. Verkkojakoasemalla oleva shapefile tarvitsee vain tiedostopolun, jonka käyttöjärjestelmä voi avata. Koska kyse on kolmesta eri mekanismista, tyhjä projekti ei kerro mitään ennen kuin tiedät, mitä niistä vianetsit.

Kysy GIS-operaattorilta päätepiste, portti, vaadittu identiteetti ja käyttöoikeuskäytäntö, joka koskee tiliäsi. Pidä palvelun isäntänimi täsmälleen sellaisena kuin se on myönnetty, kun käyttöönotto riippuu yksityisestä DNS:stä tai varmenteen nimistarkistuksista. Toisen käyttäjän tallennetusta yhteydestä kopioidun isäntäosoitteen uudelleenkäyttö on nopein tie koneeseen, joka vastaa mutta pitää vanhempaa tietokantaa.

Reitit, sallitut resurssit ja nimien ratkaisu kuuluvat sille, joka ylläpitää VPN:ää. Datatietolähdelomake ei voi asentaa reittiä, jota tunneliprofiili ei koskaan työntänyt, eikä voi laajentaa yhdyskäytävän käytäntöä. Kun isäntänimi ratkeaa ja portti vastaa, ongelman verkko-osuus on valmis.

Syötä yksityinen päätepiste, jonka operaattori on myöntänyt

QGIS:n PostgreSQL-lomake heijastaa kentät, joita libpq odottaa, joten täytä se samassa järjestyksessä kuin komentoriviyhteys tekisi. Palvelu ja isäntä ottavat tietokantakoneen, portti ottaa kuuntelijan, jonka palvelin todella avaa, ja tietokanta ottaa tietyn luettelon palvelimen oletuksen sijaan. Tallenna salasana todennusasetukseen projektitiedoston sijaan, jotta jaettu projekti ei kanna tunnistetietoja.

Erota kaksi nimeä ennen kuin kirjoitat mitään. Yhdyskäytävän nimi kuuluu VPN-asiakasohjelmaan ja tietokannan nimi QGIS:iin, ja ne ovat harvoin sama isäntä.

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

Jos tietokanta on toisella koneella yhdyskäytävän takana, lomakkeen nimen on oltava se kone. Yksityinen DNS tunnelin kautta saa nimen toimimaan, ja projekti, joka ratkeaa vain yhteyden aikana, käyttäytyy oikein eikä välimuistita huonosti.

Pidä tietokannan TLS-tila erillään tunnelista

VPN-tuotteen nimessä oleva SSL kuvaa tunnelia, ei tietokantaistuntoa. QGIS välittää PostgreSQL:n SSL-tilan libpq:lle, ja tämä tila ohjaa, tarkistaako asiakas palvelimen varmenteen ja tarkistaako se siinä olevan isäntänimen. verify-fulltekee molemmat, siksi se on tila, joka kannattaa pitää, kun varmenteessa on palvelun nimi.

Tilan laskeminen tasolle disable koska tunneli on jo salattu, poistaa tarkistuksen siitä, että saavutettu palvelin on pyydetty palvelin. Kun tarkistus epäonnistuu, tavallinen syy on nimen eroavuus tai puuttuva juurivarmenne, ja molemmat voi korjata heikentämättä yhteyttä. Osoita sslrootcert operaattorin julkaisemaan CA:han ja pidä lomakkeen isäntänimi samana kuin varmenteen nimi.

Tunneli, jossa on yksityinen reitti, ja tietokanta, jossa on kelvollinen varmenne, voivat silti epäonnistua roolissa. Sovelluksen tunnistetiedot ovat erillisiä VPN:n tunnistetiedoista, eikä yhdyskäytävälle todennettu tili saa mitään implisiittisiä oikeuksia PostgreSQL:ssä.

Testaa jokainen raja järjestyksessä ja lue ensimmäinen epäonnistuminen

Työskentele asiakkaasta ulospäin kiinteässä järjestyksessä: nimien ratkaisu, TCP-tavoitettavuus, TLS, todennus ja sitten itse kysely. Ensimmäinen epäonnistuva vaihe on ainoa, joka kannattaa raportoida, ja edelle hyppääminen tuottaa virheilmoituksia rajalta, jolle et ole vielä päässyt. Neljä komentoa kattaa neljä ensimmäistä vaihetta.

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

Tyhjä vastaus komennolta getent on nimien ratkaisun ongelma, ei tietokannan ongelma. Hylätty tai aikakatkaistu nc tarkoittaa, että reitti tai palomuurisääntö puuttuu, mikä on yhdyskäytävän puolen korjaus. TLS-virhe komennolta psql tarkoittaa, että varmenne tai nimi on väärä, kun taas password authentication failed tarkoittaa, että pääsit PostgreSQL:ään ja ongelma on tunnistetiedoissa. WMS-tasolle curl kutsu palauttaa ominaisuus-XML:n, jonka QGIS jäsentäisi, joten HTML-kirjautumissivu tuossa tulosteessa selittää tyhjän tason heti.

PostgreSQL-virhe on hyvä uutinen aikakatkaisuun verrattuna. Se todistaa, että kohde vastasi, mikä siirtää tiketin verkkotiimiltä tietokanta- tai GIS-ylläpitäjälle. Tämän eron säilyttäminen raportissa säästää yhden kierroksen.

Kun projekti avautuu tyhjillä tasoilla

Tarkista QGIS:ssä tason tallennettu lähde ennen kuin syötät mitään uudelleen. Tason ominaisuudet näyttävät tarkan yhteysmerkkijonon, jonka projekti tallensi, ja kaksoiskappale yhteydestä vanhemmalla isännällä on tavallinen jäänne aiemmasta toimistoverkosta. Projektin uudelleenlataus yhteyden korjaamisen jälkeen ei aina lue tarjoajaa uudelleen, joten poista taso ja lisää se uudelleen korjatusta yhteydestä.

Vahvista sitten, että todennusasetus on tasoon liitetty eikä vain luettelossa oleva. Toisella todennusasetuksella tallennettu taso epäonnistuu hiljaa selainpaneelissa, kun taas erillinen psql testi menee läpi.

Kun taso latautuu, tallenna projekti suhteellisilla poluilla vain tiedostoille ja pidä palveluyhteydet niiden päätepisteen mukaan nimettyinä. Seuraava projektin perijä näkee silloin, mitä isäntää rikkinäinen taso odotti avaamatta tikettiä.

Aiheeseen liittyvät artikkelit