Thursday, March 10, 2016

R: InternetOpenUrl failed: 'The date in the certificate is invalid or has expired'

Today the two-year-old TLS security certificate for cran.r-project.org expired, so suddenly in R you are getting errors running install.packages or update.packages.

The error looks like this:

> update.packages()
--- Please select a CRAN mirror for use in this session ---
Error in download.file(url, destfile = f, quiet = TRUE) : 
  cannot open URL 'https://cran.r-project.org/CRAN_mirrors.csv'
In addition: Warning message:
In download.file(url, destfile = f, quiet = TRUE) :
  InternetOpenUrl failed: 'The date in the certificate is invalid or has expired'

The workaround is simple: choose another repository! For example:

options("repos"="https://cran.revolutionanalytics.com/")
update.packages(ask=T)
install.packages('gbm')

This is bad timing with the release of R 3.2.4 today. If you need to download R using your web browser, visit a mirror, such as cran.revolutionanalytics.com.

Tested with R 3.2.3 on Windows 7 and Windows Server 2012.

3 comments:

  1. This appears to have stopped working again? We installed 3.3.3 on a new workstation and am getting an identical error.

    ReplyDelete
  2. Hi, this seems to be happening again - we installed 3.3.3 on a workstation and are getting an identical error. Tried selecting a mirror as per the example, but no go. Even the http mirrors produce the same error.

    Please advise.

    ReplyDelete
  3. Right now the host CRAN.r-project.org has a valid certificate.

    Make sure your system clock is correct.

    Also check that the DNS is pulling up the correct site. Assuming you are having trouble with cran.r-project.org, you can check by visiting it in a web browser. (The DNS could be wrong for various reasons including wifi captive portal or DNS-based security like OpenDNS.)

    ReplyDelete

Estimating token counts from character length

When programatically using an AI chatbot API, it is easy to run up big bills. To avoid this, carefully moniter token usage, but resist the u...