[R-SIG-Mac] R / Rstudio and curl on Mac Mojave

Gábor Csárdi c@@rd|@g@bor @end|ng |rom gm@||@com
Sat Nov 13 18:00:37 CET 2021


The curl package does not use the command line curl program, it uses
libcurl, the library. You can use curl::curl_version() to see the
libcurl version that the curl package is using.

But in any case, this is not a curl or libcurl bug, but a
libressl/Mojave bug that Apple didn't fix, and probably won't fix
because Mojave is not supported any more.

You can fix it manually. You need to edit the /etc/ssl/cert.pem (make
a backup copy first), and remove the cert that expired on Sep 30
14:01:15 2021 GMT. Its entry starts with ## Digital Signature Trust
Co., until the end of the cert, the first -----END CERTIFICATE-----
line. You probably need sudo or the root user to edit it.

After you removed it, you can test it with something like

curl -v https://builder.r-hub.io >/dev/null

from a shell. This should fail before, and not fail after your edit.

Depending on which browser you use, you might need to update that as
well, at least I had to update chrome back then, on my Mojave machine.

Gabor

On Sat, Nov 13, 2021 at 5:34 PM <kjschaudt using schaudt.us> wrote:
>
>
> Lets Encrypt and curl under Mojave on a Mac:
>
> How does one work around the expiration of the Lets Encrypt
> certificates when running on Mojave?
>
> Under R control, I download a list of stations, select the proper ones
> and download.
>
> station_link = "https://ntl.gcoos.org/station_table.txt"
> HtmlLink <- paste(station_link)
> dest = paste("data/station_list.txt")
> curl_download(url =HtmlLink ,destfile=dest,quiet=FALSE, mode="wb")
>
> This fails due to the certificate issues.
>
> Similarly, system("curl https://ntl.gcoos.org/station_table.txt
> -output table.txt") fails.
>
> However, curl https://ntl.gcoos.org/station_table.txt -output
> table.txt works from the terminal!
>
> Checking versions, I find that the terminal is using curl 7.8.
> system("curl -V") returns curl 7.54.
>
>  From the terminal "which curl" points to curl 7.8 installed by mac ports.
>
> from R, system("which curl") points to curl 7.54 which was installed
> during Mojave installation.
>
> Apparently, "R"  ignores the $PATH statement and looks for the binary
> in /usr/bin/, neither curl from Brew, Macports or Anaconda helped.
>
> Curl makes use of cacert.pem which isn't accepted by the Keychain.
>
> Wiping a disk and building a fresh install did not help.
>
> Updating to Catalina upgraded curl to version 7.80 which fixed the
> problem but killed my 32-bit applications.
>
> Does anyone know a way to force R to follow the $PATH specification?
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac



More information about the R-SIG-Mac mailing list