Konekti QGIS al PostGIS malantaŭ VPN: paŝo post paŝo
Direktu QGIS al PostGIS aŭ WMS malantaŭ VPN: apartigu la tunelon de la serva finpunkto, konservu verify-full TLS kaj testu ĉiun limon laŭvice.
QGIS legas ĉiun vojon, kiun ĝiaj datumprovizantoj povas atingi, do funkcianta VPN estas nur duono de la agordo. La tunelo donas al la labortablo itineron kaj nomrezolvan politikon; la projekto ankoraŭ bezonas la servan finpunkton, la protokolon de la provizanto kaj la akreditaĵojn, kiujn la servo akceptos. Tiuj estas tri apartaj kampoj, kaj tajpi la publikan aŭskultanton de la VPN en datumbazan kampon estas neniu el ili. Ĉi tiu gvidilo sekvas unu PostGIS-tavolon de la QGIS-formularo ĝis redonita vico kaj nomas la limon, kiun pruvas ĉiu paŝo.
Komencu per la tavolo, ne per la VPN
Ĉiu tavolo-speco atingas alian specon de finpunkto. PostGIS-tavolo malfermas PostgreSQL-konekton kun gastiganto, pordo, datumbazo kaj rolo. WMS- aŭ WFS-tavolo elŝutas servan URL-on kaj poste analizas kapablan dokumenton. Shapefile sur reta kunhavo bezonas nur dosiervojon, kiun la operaciumo povas malfermi. Ĉar temas pri tri malsamaj mekanismoj, malplena projekto diras al vi nenion ĝis vi scias, kiun vi sencimigas.
Demandu la GIS-operaciiston pri la finpunkto, la pordo, la postulata identeco kaj la alirpolitiko, kiu validas por via konto. Konservu la gastigantan nomon de la servo ĝuste tiel, kiel ĝi estis eldonita, kiam la deplojo dependas de privata DNS aŭ de nomkontroloj en la atestilo. Reuzi gastigantan adreson kopiitan el konservita konekto de alia uzanto estas la plej rapida vojo al maŝino, kiu respondas sed tenas pli malnovan datumbazon.
Itineroj, permesitaj rimedoj kaj nomrezolucio apartenas al tiu, kiu funkciigas la VPN-on. Datumfonto-formularo ne povas instali itineron, kiun la tunela profilo neniam puŝis, kaj ĝi ne povas plilarĝigi pordegan politikon. Kiam la gastiganto rezolviĝas kaj la pordo respondas, la reta flanko de la problemo finiĝis.
Enigu la privatan finpunkton, kiun la operaciisto eldonis
La PostgreSQL-formularo en QGIS spegulas la kampojn, kiujn libpq atendas, do plenigu ĝin en la sama ordo kiel komandlinia konekto farus. Servo kaj gastiganto prenas la datumbazan maŝinon, pordo prenas la aŭskultanton, kiun la servilo efektive malfermas, kaj datumbazo prenas la konkretan katalogon anstataŭ la servilan normon. Konservu la pasvorton en aŭtentiga agordo anstataŭ en la projektodosiero, por ke kunhavata projekto ne portu akreditaĵon.
Apartigu la du nomojn antaŭ ol vi tajpi ion ajn. La pordega nomo apartenas al la VPN-kliento kaj la datumbaza nomo al QGIS, kaj ili malofte estas la sama gastiganto.
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
Se la datumbazo situas sur alia maŝino malantaŭ la pordego, la nomo en la formularo devas esti tiu maŝino. Privata DNS tra la tunelo estas tio, kio funkciigas la nomon, kaj projekto, kiu rezolviĝas nur dum vi estas konektita, kondutas ĝuste, ne ke ĝi kaŝmemoras malbone.
Tenu la TLS-reĝimon de la datumbazo aparte de la tunelo
La SSL en la nomo de VPN-produkto priskribas la tunelon, ne la datumbazan seancon. QGIS transdonas la PostgreSQL-SSL-reĝimon al libpq, kaj tiu reĝimo regas, ĉu la kliento kontrolas la atestilon de la servilo kaj ĉu ĝi kontrolas la gastigantan nomon en ĝi. verify-fullfaras ambaŭ, tial ĝi estas la reĝimo, kiun indas konservi, kiam la atestilo portas la servan nomon.
Malaltigi la reĝimon al disable ĉar la tunelo jam estas ĉifrita forigas la kontrolon, ke la servilo, kiun vi atingis, estas la servilo, kiun vi petis. Kiam la kontrolo malsukcesas, la kutima kaŭzo estas nommiskongruo aŭ mankanta radika atestilo, kaj ambaŭ ripareblas sen malfortigi la konekton. Direktu sslrootcert al la CA, kiun la operaciisto publikigas, kaj tenu la gastigantan nomon en la formularo identa al la nomo en la atestilo.
Tunelo kun privata itinero kaj datumbazo kun valida atestilo ankoraŭ povas malsukcesi ĉe la rolo. Aplikaj akreditaĵoj estas apartaj de VPN-akreditaĵoj, kaj konto, kiu aŭtentiĝas ĉe la pordego, havas neniujn implicajn rajtojn en PostgreSQL.
Testu ĉiun limon laŭvice kaj legu la unuan malsukceson
Laboru de la kliento eksteren en fiksa ordo: nomrezolucio, TCP-atingebleco, TLS, aŭtentigo, poste la demando mem. La unua paŝo, kiu malsukcesas, estas la sola inda raporti, kaj antaŭensalti produktas erarmesaĝojn de limo, kiun vi ankoraŭ ne atingis. Kvar komandoj kovras la unuajn kvar paŝojn.
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
Malplena respondo de getent estas rezolucia problemo, ne datumbaza problemo. Rifuzita aŭ eksvalidiĝinta nc signifas, ke mankas itinero aŭ firewall-regulo, kio estas ripari ĉe la pordega flanko. TLS-eraro de psql signifas, ke la atestilo aŭ la nomo estas malĝusta, dum password authentication failed signifas, ke vi atingis PostgreSQL kaj la problemo estas la akreditaĵo. Por WMS-tavolo, la curl voko redonas la kapablan XML-on, kiun QGIS analizus, do HTML-ensaluta paĝo en tiu eligo tuj klarigas malplenan tavolon.
PostgreSQL-eraro estas bona novaĵo kompare kun tempolimo. Ĝi pruvas, ke la celo respondis, kio movas la bileton de la reta teamo al la datumbaza aŭ GIS-administranto. Konservi tiun distingon en la raporto ŝparas unu vojaĝon.
Kiam la projekto malfermiĝas kun malplenaj tavoloj
Ene de QGIS, kontrolu la konservitan fonton de la tavolo antaŭ ol reenigi ion ajn. La tavolaj ecoj montras la ĝustan konektan ĉenon, kiun la projekto konservis, kaj duobla konekta rikordo kun pli malnova gastiganto estas ofta restaĵo de antaŭa oficeja reto. Reŝargi la projekton post ripari konekton ne ĉiam relegas la provizanton, do forigu la tavolon kaj aldonu ĝin denove el la korektita konekto.
Poste konfirmu, ke la aŭtentiga agordo estas tiu alligita al la tavolo, ne nur ĉeesta en la listo. Tavolo konservita kun alia aŭtentiga agordo malsukcesas silente en la retumila panelo, dum la memstara psql testo pasas.
Kiam la tavolo ŝargiĝas, konservu la projekton kun relativaj vojoj nur por dosieroj kaj tenu servajn konektojn nomitajn laŭ ilia finpunkto. La sekva persono, kiu heredas la projekton, tiam povas vidi, kiun gastiganton rompita tavolo atendis, sen malfermi bileton.