一次由系统时间不一致导致证书错误引发的下载失败问题

转载于http://blog.c7d8.com/blog/10.html ,原文可能有更新,以原文为准

春节放假回来发现有一个gitlab的runner编译打包总是不成功,具体错误为某个包下载失败,记得以前是维护过的,因为npm有一些包在海外,所以下载不畅,一般都是手动处理。

具体错误如下

[5/5] Building fresh packages...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error /builds/xxxx-tog/xxxx-govx/xxxx-web/node_modules/phantomjs-prebuilt: Command failed.
Exit code: 1
Command: node install.js
Arguments: 
Directory: /builds/xxxx-tog/xxxx-govx/xxxx-web/node_modules/phantomjs-prebuilt
Output:
PhantomJS not found on PATH
Downloading https://npm.taobao.org/mirrors/phantomjs//phantomjs-2.1.1-linux-x86_64.tar.bz2
Saving to /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
Receiving...

Error making request.
Error: certificate is not yet valid
    at TLSSocket.onConnectSecure (_tls_wrap.js:1049:34)
    at TLSSocket.emit (events.js:182:13)
    at TLSSocket._finishInit (_tls_wrap.js:631:8)

Please report this full log at https://github.com/Medium/phantomjs

因为先入为主的任务是需要从海外下载的原因,所以解决方案就按照手动下载上传了,但下载完一个重试,发现还有其他的包也有问题,这才仔细看错误原因,也逐渐开始怀疑公司机房春节断电以后可能存在服务器时间没有及时同步到正确的时间,导致证书验证通不过引发下载失败,遂执行命令

# date
Sun Feb  3 07:58:21 UTC 2019

发现确实是时间问题,检查crontab -e也没有发现定时同步时间的任务,于是先搞定时间差问题,再将时间加入cron开启定期同步,分别执行如下命令

yum install ntpdate -y
ntpdate ntp1.aliyun.com
hwclock --systohc

再执行crontab -e将如下计划追加到打开的文件中,保存即可

0 1 * * * ntpdate ntp1.aliyun.com;hwclock --systohc

你可能感兴趣的:(随笔)