我需要使用CURL指定一个证书,我已经尝试使用--cert选项,但它无法工作。
请问在调用curl时如何指定密钥库和密码?
我需要使用CURL指定一个证书,我已经尝试使用--cert选项,但它无法工作。
请问在调用curl时如何指定密钥库和密码?
应该是:
curl --cert certificate_file.pem:password https://www.example.com/some_protected_page
curl --version
查看是否列出了NSS),则需要将密钥导入NSS密钥库。我走了一堆复杂的步骤,所以可能不是最干净的方法,但它让事情正常工作了。因此,将密钥导出为.p12文件。
keytool -importkeystore -srckeystore $jksfile -destkeystore $p12file \
-srcstoretype JKS -deststoretype PKCS12 \
-srcstorepass $jkspassword -deststorepass $p12password
-srcalias $myalias -destalias $myalias \
-srckeypass $keypass -destkeypass $keypass -noprompt
生成仅包含密钥的pem文件。
创建一个空的密钥库:echo making ${fileroot}.key.pem openssl pkcs12 -in $p12 -out ${fileroot}.key.pem \ -passin pass:$p12password \ -passout pass:$p12password -nocerts
mkdir ~/nss
chmod 700 ~/nss
certutil -N -d ~/nss
pks12util -i <mykeys>.p12 -d ~/nss -W <password for cert >
现在curl应该可以工作了。
curl --insecure --cert <client cert alias>:<password for cert> \ --key ${fileroot}.key.pem <URL>
正如我所提到的,可能有其他方法来完成这项任务,但至少对我而言,这是可重复的。如果curl编译时支持NSS,则我无法从文件中获取客户端证书。
export SSL_DIR=~/nss
。 - Marcelcurl --version
获取有关支持的协议的信息。如果它不支持https,则需要安装支持https的cURL版本。curl --cert certificate_path:password https://www.example.com