nginx下配置ssl而wget无法下载的问题

Colors的日常 2020-01-28 454 次浏览 0 条评论

0x00 问题提出

这几天搞了台vps折腾网站搭建,采用nginx做反向代理,申请了免费的Let's Encrypt SSL证书,神奇的事情发生了,用浏览器(Firefox,IE,Edge)访问均无问题,显示“安全连接”,但尝试使用wget使用https协议下载网站内容,提示:

“错误: 无法验证 example.com 的由 “/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3” 颁发的证书:无法本地校验颁发者的权限。”

0x01 问题复现

使用acem.sh申请证书

...(以上省略)
Your cert is in  /example.com.cer 
Your cert key is in  /example.com.key 
The intermediate CA cert is in  /example.com/ca.cer 
And the full chain certs is there:  /example.com/fullchain.cer 

nginx配置

    ssl_certificate  /example.com.cer;
    ssl_certificate_key /example.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;

浏览器访问

wget下载

0x02 原因分析及解决

经一个v2ex帖子(见参考资料)的提醒,确定是没配置中间证书的问题,这里推荐一个检测网站:https://myssl.com/ ,继续查阅相关资料,得知

ssl_certificate  /example.com.cer; 这里应该写证书链/example.com/fullchain.cer 
ssl_certificate_key /example.com.key;

修改后正常

0x03 参考资料

https://myssl.com/
https://www.v2ex.com/t/468663
https://www.v2ex.com/t/602927
http://nginx.org/en/docs/http/ngx_http_ssl_module.html

微信扫一扫,分享到朋友圈

nginx下配置ssl而wget无法下载的问题
Avatar

我还没有学会写个人说明!