curl和wget证书处理

关于this issue,我正在自动构建一些具有HTTPS服务器(nginx)的远程节点。证书由openssl创建。我正在使用curl从服务器读取数据,现在尝试使用wget。 自签名证书将添加到CA存储。通过将pem服务器证书放入/ usr / local / share / ca-certificates并运行 update-ca-certificates --fresh

服务器位于alpine:nginx docker实例中。客户端(curl和wget)在Debian 10系统中。

1)卷曲好,wget否

openssl req -newkey rsa:4096 -nodes -subj "/C=NO/L=MOON/O=CONSERITY/CN=${IPDIST}" -keyout /etc/nginx/privkey.pem -x509 -days 1460 -out /etc/nginx/cert_srv.pem

卷曲效果很好。
wget throws:“证书的所有者与主机名' IP '不匹配”

2)卷曲Nok,可以确定

我知道,当证书用于IP时,它必须在SAN扩展中。这似乎是wget的问题。所以我做了以下。

IPSRV=${IPDIST} openssl req -newkey rsa:4096 -config openssl.cnf -extensions v3_req -keyout /etc/nginx/privkey.pem -x509 -days 1460 -out /etc/nginx/cert_srv.pem

具有以下conf文件:

[ req ]
default_bits = 4096
prompt = no
encrypt_key = no
default_md = sha256
distinguished_name = dn
req_extensions = v3_req

[ dn ]
CN = ${ENV::IPSRV}
O = CONSERITY
L = MOON
C = NO

[ v3_req ]
keyUsage = nonRepudiation,digitalSignature,keyEncipherment
subjectAltName = @alt_names

[ alt_names ]
IP.1 = $ENV::IPSRV

但是现在,curl无法正常工作,并引发“ curl:(60)SSL证书问题:无法获取本地发行者证书”

所以我完全迷上了RFC 6125和RFC 2818,应该遵循什么标准,curl和wget的行为是什么,如何解决这两个问题,我做错了什么。
因为curl使用的是openssl,而wget使用的是GnuTLS进行证书处理,所以它们的行为有很大不同。

KOKO1024 回答:curl和wget证书处理

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3006342.html

大家都在问