Мне нужно указать сертификат с CURL, который я попробовал с опцией --cert, он не работает.CURL, чтобы пройти SSL certifcate и пароль
Не могли бы вы сообщить мне, чтобы указать хранилище ключей и пробную паузу, когда вы вызываете завиток?
Мне нужно указать сертификат с CURL, который я попробовал с опцией --cert, он не работает.CURL, чтобы пройти SSL certifcate и пароль
Не могли бы вы сообщить мне, чтобы указать хранилище ключей и пробную паузу, когда вы вызываете завиток?
Должно быть:
curl --cert certificate_file.pem:password https://www.example.com/some_protected_page
Дополнение к предыдущему ответу убедитесь, что ваш локон установка поддерживает протокол HTTPS.
Вы можете использовать curl --version
для получения информации о поддерживаемых протоколах.
Если ваш завиток поддерживает https, следуйте предыдущему ответу.
локон --cert certificate_path: пароль https://www.example.com
Если он не поддерживает протокол HTTPS, необходимо установить завиток версию, которая поддерживает протокол HTTPS.
Я прошел через это, пытаясь получить клиентский ключ и закрытый ключ из хранилища ключей.
Ссылка, размещенная на welsh, была большой, но был добавлен дополнительный шаг в моем распределении redhat. Если curl построен с помощью NSS (запустите 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 --insecure --cert <client cert alias>:<password for cert> \ --key ${fileroot}.key.pem <URL>
Как я уже говорил, могут быть и другие способы сделать это, но, по крайней мере, это было повторяемые для меня. Если curl скомпилирован с поддержкой NSS, я не смог заставить его вытащить сертификат клиента из файла.
Могу ли я указать файл JKS с этой опцией? – Adam
Вы не можете использовать cURL с ** Java ** KeyStore.Вот хороший SO-ответ, который детализирует его: http://stackoverflow.com/q/652916/971423 – Welsh