如何在wget中禁用内置根证书 仅使用指定自签名SSL证书
仅使用指定自签名证书建立SSL连接的配置方法
核心问题原因
你之前的命令未生效,主要有两个原因:
- 缺少禁用系统内置根CA的参数,仅设置
--ca-directory=/dev/null无法覆盖旧版本wget默认加载系统根证书的逻辑 - 多余的
--certificate=my.pem是双向SSL认证场景下的客户端证书参数,单纯验证服务端自签名证书不需要该配置
wget 配置方案
1.19及以上版本GNU wget
直接使用--no-system-ca参数即可完全禁用内置根CA,仅信任你指定的证书:
wget -O- --no-system-ca --ca-certificate=my.pem https://example.com
1.19以下版本wget
通过OpenSSL环境变量覆盖默认CA加载路径,实现禁用系统根CA的效果:
SSL_CERT_FILE=my.pem SSL_CERT_DIR=/dev/null wget -O- https://example.com
curl 配置方案
curl可直接通过指定--cacert + 禁用原生CA存储实现需求:
curl --no-native-ca --cacert my.pem https://example.com
如果是低于7.71版本的curl,使用环境变量方案即可:
SSL_CERT_FILE=my.pem SSL_CERT_DIR=/dev/null curl https://example.com
效果验证
配置完成后,你可以尝试访问任意公网已信任SSL的网站,命令会直接返回证书不被信任的报错,只有访问部署了对应自签名证书的网站时才会正常建立连接,满足你测试自签名证书配置的需求。
内容的提问来源于stack exchange,提问作者bluepuma77
相关产品推荐
相关产品推荐

