[gdal-dev] GDAL, Proj and cacert

Even Rouault even.rouault at spatialys.com
Fri Feb 11 09:38:30 PST 2022


Le 11/02/2022 à 18:24, Paul Harwood a écrit :
> I have an application that uses GDAL with Proj Networking set on.
>
> This is a cross platform application. It works on some platforms but 
> on mac (for instance) I get runtime errors like this
>
> GDAL failure (1) PROJ: Cannot open 
> https://cdn.proj.org/us_nga_egm96_15.tif: error setting certificate 
> file: xxx/cacert.pem
>
> Proj is looking in the wrong place for the cacert file - which is in 
> the proj search path. I would rather avoid using environment 
> variables (complicated). Is there a programmatic way to set the Proj 
> cacert location or a default location?
>
> currently - the following are set
>
>
> Gdal.SetConfigOption("CURL_CA_BUNDLE", Path.Combine(gdalData, 
> "cacert.pem"));

The logic in PROJ is:

     // Custom path to SSL certificates.
     if (ca_bundle_path == nullptr) {
         ca_bundle_path = getenv("PROJ_CURL_CA_BUNDLE");
     }
     if (ca_bundle_path == nullptr) {
         // Name of environment variable used by the curl binary
         ca_bundle_path = getenv("CURL_CA_BUNDLE");
     }
     if (ca_bundle_path == nullptr) {
         // Name of environment variable used by the curl binary (tested
         // after CURL_CA_BUNDLE
         ca_bundle_path = getenv("SSL_CERT_FILE");
     }
     if (ca_bundle_path != nullptr) {
         CHECK_RET(ctx,
                   curl_easy_setopt(handle, CURLOPT_CAINFO, 
ca_bundle_path));
     }

There's no programmatic way, at least currently. You need to set a real 
environment variable . CPLSetConfigOption() has no effect on PROJ, only 
on GDAL


> Osr.SetPROJSearchPath(projData);
> Osr.SetPROJEnableNetwork(true);
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev

-- 
http://www.spatialys.com
My software is free, but my time generally not.



More information about the gdal-dev mailing list