wget访问指定HTTPS链接遇证书验证失败问题求助
解决wget访问HTTPS站点时的证书验证失败问题
问题描述
在Safari浏览器中访问https://einvoiceserviceturmobtest.luca.com.tr/InvoiceService/ServiceContract/InvoiceService.svc显示正常,但在macOS Sonoma 14.0或Ubuntu 22.04终端执行wget https://einvoiceserviceturmobtest.luca.com.tr/InvoiceService/ServiceContract/InvoiceService.svc时,出现证书验证错误:
--2024-08-30 04:57:06-- https://einvoiceserviceturmobtest.luca.com.tr/ Resolving einvoiceserviceturmobtest.luca.com.tr (einvoiceserviceturmobtest.luca.com.tr)... 90.158.104.38 Connecting to einvoiceserviceturmobtest.luca.com.tr (einvoiceserviceturmobtest.luca.com.tr)|90.158.104.38|:443... connected. ERROR: cannot verify einvoiceserviceturmobtest.luca.com.tr's certificate, issued by ‘CN=GeoTrust TLS ECC CA G1,OU=www.digicert.com,O=DigiCert Inc,C=US’: Unable to locally verify the issuer's authority. To connect to einvoiceserviceturmobtest.luca.com.tr insecurely, use `--no-check-certificate'.
解决方案
临时应急方案(不推荐,存在安全风险)
直接使用wget的--no-check-certificate参数跳过证书验证,仅适合临时测试:
wget --no-check-certificate https://einvoiceserviceturmobtest.luca.com.tr/InvoiceService/ServiceContract/InvoiceService.svc
永久解决(推荐,安全合规)
问题根源是系统CA证书存储中缺少GeoTrust TLS ECC CA G1根证书,需将其导入系统信任列表:
Ubuntu 22.04 操作步骤
- 从Safari导出证书:访问目标站点,点击地址栏锁图标 → 查看证书 → 找到
GeoTrust TLS ECC CA G1证书 → 导出为PEM格式文件(命名如geotrust-tls-ecc-g1.crt) - 将证书文件移动到系统证书目录:
sudo mv geotrust-tls-ecc-g1.crt /usr/local/share/ca-certificates/ - 更新系统证书缓存:
sudo update-ca-certificates
macOS Sonoma 14.0 操作步骤
- 同样从Safari导出
GeoTrust TLS ECC CA G1证书为PEM格式 - 打开「钥匙串访问」应用,将导出的证书拖入「系统」钥匙串
- 右键点击该证书 → 显示简介 → 在「信任」选项卡中,将「使用此证书时」设置为「始终信任」
- 刷新系统证书缓存:
sudo security flush-keychain -d system
完成以上操作后,再次运行wget命令即可正常验证证书并访问站点。
内容的提问来源于stack exchange,提问作者Mehmet Demir
相关产品推荐
相关产品推荐

