QGIS nolasa jebkuru ceļu, ko sasniedz tā datu nodrošinātāji, tāpēc ieslēgts VPN ir tikai puse no iestatīšanas. Tunelis dod darbvirsmai maršrutu un nosaukumu izšķiršanas politiku; projektam joprojām vajag pakalpojuma galapunktu, nodrošinātāja protokolu un akreditācijas datus, ko pakalpojums pieņems. Tie ir trīs atsevišķi lauki, un VPN publiskā klausītāja ierakstīšana datubāzes laukā nav neviens no tiem. Šī pamācība seko vienam PostGIS slānim no QGIS formas līdz atgrieztai rindai un nosauc robežu, ko pierāda katrs solis.

Sāciet ar slāni, nevis ar VPN

Katrs slāņa veids sasniedz cita veida galapunktu. PostGIS slānis atver PostgreSQL savienojumu ar resursdatoru, portu, datubāzi un lomu. WMS vai WFS slānis iegūst pakalpojuma URL un pēc tam analizē iespēju dokumentu. Shapefile tīkla koplietojumā nepieciešams tikai faila ceļš, ko operētājsistēma var atvērt. Tā kā tie ir trīs dažādi mehānismi, tukšs projekts neko nepasaka, kamēr nezināt, kuru no tiem atkļūdojat.

Pajautājiet GIS operatoram galapunktu, portu, nepieciešamo identitāti un piekļuves politiku, kas attiecas uz jūsu kontu. Saglabājiet pakalpojuma resursdatora nosaukumu tieši tādu, kāds tas tika izsniegts, ja izvietošana ir atkarīga no privāta DNS vai sertifikāta nosaukuma pārbaudēm. Cita lietotāja saglabāta savienojuma nokopētas resursdatora adreses atkārtota izmantošana ir ātrākais ceļš uz mašīnu, kas atbild, bet glabā vecāku datubāzi.

Maršruti, atļautie resursi un nosaukumu izšķiršana pieder tam, kas uztur VPN. Datu avota forma nevar instalēt maršrutu, ko tuneļa profils nekad nav nosūtījis, un nevar paplašināt vārtejas politiku. Kad resursdators tiek izšķirts un ports atbild, problēmas tīkla puse ir pabeigta.

Ievadiet privāto galapunktu, ko izsniedza operators

PostgreSQL forma QGIS atspoguļo laukus, ko gaida libpq, tāpēc aizpildiet to tādā pašā secībā, kā to darītu komandrindas savienojums. Pakalpojums un resursdators ņem datubāzes mašīnu, ports ņem klausītāju, ko serveris faktiski atver, un datubāze ņem konkrēto katalogu, nevis servera noklusējumu. Glabājiet paroli autentifikācijas konfigurācijā, nevis projekta failā, lai koplietots projekts nenes akreditācijas datus.

Atdaliet abus nosaukumus, pirms kaut ko ierakstāt. Vārtejas nosaukums pieder VPN klientam, bet datubāzes nosaukums — QGIS, un tie reti ir viens un tas pats resursdators.

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

Ja datubāze atrodas citā mašīnā aiz vārtejas, formā esošajam nosaukumam jābūt tai mašīnai. Tieši privātais DNS caur tuneli liek nosaukumam darboties, un projekts, kas izšķiras tikai savienojuma laikā, uzvedas pareizi, nevis slikti kešo.

Turiet datubāzes TLS režīmu atsevišķi no tuneļa

SSL VPN produkta nosaukumā raksturo tuneli, nevis datubāzes sesiju. QGIS nodod PostgreSQL SSL režīmu libpq, un šis režīms kontrolē, vai klients pārbauda servera sertifikātu un vai pārbauda tajā esošo resursdatora nosaukumu. verify-fulldara abus, tāpēc tas ir režīms, ko ir vērts saglabāt, kad sertifikāts nes pakalpojuma nosaukumu.

Režīma pazemināšana uz disable tāpēc, ka tunelis jau ir šifrēts, noņem pārbaudi, vai sasniegtais serveris ir pieprasītais serveris. Kad pārbaude neizdodas, ierastais iemesls ir nosaukumu neatbilstība vai trūkstošs saknes sertifikāts, un abus var salabot, nesamazinot savienojuma drošību. Novirziet sslrootcert uz CA, ko publicē operators, un turiet formā esošo resursdatora nosaukumu identisku sertifikātā esošajam nosaukumam.

Tunelis ar privātu maršrutu un datubāze ar derīgu sertifikātu joprojām var neizdoties lomā. Lietojumprogrammas akreditācijas dati ir atsevišķi no VPN datiem, un kontam, kas autentificējas vārtejā, nav nekādu netiešu tiesību PostgreSQL.

Pārbaudiet katru robežu secībā un nolasiet pirmo kļūdu

Strādājiet no klienta uz āru fiksētā secībā: nosaukumu izšķiršana, TCP sasniedzamība, TLS, autentifikācija un tad pats vaicājums. Pirmais neveiksmīgais solis ir vienīgais, par ko ir vērts ziņot, un pārlēkšana uz priekšu dod kļūdas ziņojumus no robežas, kuru vēl neesat sasniedzis. Četras komandas nosedz pirmos četrus soļus.

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

Tukša atbilde no getent ir nosaukumu izšķiršanas problēma, nevis datubāzes problēma. Noraidīts vai beidzies nc nozīmē, ka trūkst maršruta vai firewall kārtulas, un tas labojams vārtejas pusē. TLS kļūda no psql nozīmē, ka sertifikāts vai nosaukums ir nepareizs, savukārt password authentication failed nozīmē, ka esat sasniedzis PostgreSQL un problēma ir akreditācijas datos. WMS slānim curl izsaukums atgriež iespēju XML, ko QGIS analizētu, tāpēc HTML pieteikšanās lapa šajā izvadē uzreiz izskaidro tukšu slāni.

PostgreSQL kļūda ir laba ziņa salīdzinājumā ar taimautu. Tā pierāda, ka galamērķis atbildēja, un tas pārvieto biļeti no tīkla komandas uz datubāzes vai GIS administratoru. Šīs atšķirības saglabāšana ziņojumā ietaupa vienu apli.

Kad projekts atveras ar tukšiem slāņiem

QGIS iekšienē pārbaudiet slāņa saglabāto avotu, pirms kaut ko ievadāt no jauna. Slāņa rekvizīti rāda precīzu savienojuma virkni, ko projekts saglabāja, un dubults savienojuma ieraksts ar vecāku resursdatoru ir ierasta iepriekšējā biroja tīkla palieka. Projekta pārlāde pēc savienojuma labošanas ne vienmēr nolasa nodrošinātāju no jauna, tāpēc noņemiet slāni un pievienojiet to no jauna no labotā savienojuma.

Pēc tam pārliecinieties, ka autentifikācijas konfigurācija ir tā, kas piesaistīta slānim, nevis vienkārši atrodama sarakstā. Slānis, kas saglabāts ar citu autentifikācijas konfigurāciju, klusi neizdodas pārlūka panelī, kamēr atsevišķais psql tests iztur.

Kad slānis ielādējas, saglabājiet projektu ar relatīviem ceļiem tikai failiem un turiet pakalpojumu savienojumus nosauktus pēc to galapunkta. Nākamā persona, kas manto projektu, varēs pateikt, kuru resursdatoru gaidīja bojāts slānis, neatverot biļeti.

Saistītie raksti