用fetch命令下载https的网站时,会遇到Authentication error:
-
% fetch --allow-sslv2 https://codeigniter.com/assets/images/ci-logo-white.png
-
Certificate verification failed for /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO ECC Certification Authority
-
34380826280:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/s3_clnt.c:1168:
-
fetch: https://codeigniter.com/assets/images/ci-logo-white.png: Authentication error
原因是fetch没有找到ssl用的pem证书文件,fetch的默认位置在/etc/ssl/cert.pem,但是FreeBSD10.0以后系统中并不自带这个文件,所以需要自行创建它。
创建方法:
1、在/usr/local里面自带了一个,但不是最新的版本,可以应付一阵子:
ln -sf /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
2、安装openssl
3、 安装 security/ca_root_nss
这是正规的网站,很多网站是没有ca签名的,这种网站只好忽略掉证书检查了,也不是很麻烦,加个参数就解决:
-
fetch --no-verify-peer https://codeigniter.com/assets/images/ci-logo-white.png
或者设置环境变量,效果也一样:
-
setenv SSL_NO_VERIFY_PEER=1
阅读(2909) | 评论(0) | 转发(0) |