我可以做些什么来解决/修复为什么我的curl命令在用它的昵称引用它时找不到我的证书
我正在尝试与银行服务器建立安全连接,即使用curl处理我们的在线支付。服务器正在使用NSS协议。我将银行的证书安装到nssdb中,并附上昵称" foo"使用:
certutil -A -d sql:/etc/pki/nssdb -i ccapi.pem -n "foo" -t "P,P,P"
列出证书以检查它是否已创建,我使用
certutil -L -d sql:/etc/pki/nssdb/
输出确认昵称" foo"证书:
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
foo P,P,P
当我尝试使用curl引用连接到证书的昵称foo时,如下所示:
curl -k -v --cert "foo" https://ccapi.client.qvalent.com/payway/ccapi
这是输出的一部分:
Connected to proxy.ourdomain.com.au (172.21.0.58) port 3128 (#0)
Establish HTTP proxy tunnel to ccapi.client.qvalent.com:443
CONNECT ccapi.client.qvalent.com:443 HTTP/1.1
Host: ccapi.client.qvalent.com:443
User-Agent: curl/7.37.0
Proxy-Connection: Keep-Alive
HTTP/1.1 200 Connection established
Proxy replied OK to CONNECT request
Initializing NSS with certpath: sql:/etc/pki/nssdb
skipping SSL peer certificate verification
NSS: client certificate not found: foo
最后一行:找不到证书:foo,是我的问题。我似乎在使用昵称在nssdb中创建证书时正确地做了一切,但是当使用curl命令进行连接时,它无法找到证书。如果我链接到这样的实际证书而不是昵称:
curl -k -v --cert "./ccapi.pem" https://ccapi.client.qvalent.com/payway/ccapi
然后证书被识别,但我无法连接到银行服务器。这可能是因为我需要使用NSS,但这与我想要得到的答案无关。我在stackoverflow上发现了类似的问题,例如。 CURL NSS client certificate not found myCert但他们没有回答这个问题。我没有/使用PKCS#12证书。 我可以做些什么来解决/修复为什么我的curl命令在用它的昵称引用它时找不到我的证书。
感谢任何帮助
-M