Hi, if you are getting errors like Connection error (certificate has expired)
when running Meteor commands it means that you are running a version of Meteor older than v1.9.
Node.js before 10 (and Meteor before 1.9) doesn’t include Let’s Encrypt’s newest root certificate.
This is why these commands are failing.
A workaround, for now, is to run all the meteor commands with the following environment variable NODE_TLS_REJECT_UNAUTHORIZED
, for example in the deploy command:
NODE_TLS_REJECT_UNAUTHORIZED=0 meteor deploy ....
.
We are investigating if we can find a better workaround for this problem that is affecting old Meteor versions.
Also note that if you are running old distributions, like Ubuntu 16 and before, locally, or in any of your CI pipelines you may also face this issue. In this case, we do recommend updating your distribution, or your local repository of root certificates (the how-to of this varies based on your distribution).
If your server is accessing external let’s encrypt resources with an old Meteor version, you will also need to add NODE_TLS_REJECT_UNAUTHORIZED to your container env, using your settings file.
"galaxy.meteor.com": {
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
},