L'ho passato cercando di ottenere un client e una chiave privata da un keystore.
Il link sopra postato da gallese è stato grande, ma c'era un passo in più sulla mia distribuzione RedHat. Se l'arricciatura è costruito con NSS (correre curl --version
per vedere se si vede NSS elencato), allora è necessario importare le chiavi in un archivio chiavi NSS. Sono andato attraverso un mazzo di passaggi contorti, quindi questo non può essere il modo più pulito, ma ha ottenuto le cose che lavorano
Quindi esportare le chiavi in p12
keytool -importkeystore -srckeystore $jksfile -destkeystore $p12file \
-srcstoretype JKS -deststoretype PKCS12 \
-srcstorepass $jkspassword -deststorepass $p12password
-srcalias $myalias -destalias $myalias \
-srckeypass $keypass -destkeypass $keypass -noprompt
e generare il file PEM che contiene solo la chiave
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
- Importa le chiavi nell'archivio chiavi
pks12util -i <mykeys>.p12 -d ~/nss -W <password for cert >
Ora ricciolo dovrebbe funzionare.
curl --insecure --cert <client cert alias>:<password for cert> \
--key ${fileroot}.key.pem <URL>
Come ho già detto, ci possono essere altri modi per fare questo, ma almeno questo era ripetibile per me. Se il curl è compilato con il supporto NSS, non sono stato in grado di farlo per estrarre il certificato client da un file.
fonte
2017-06-19 13:38:02
Posso specificare un file JKS con questa opzione? – Adam
Non è possibile utilizzare cURL con un KeyStore ** Java **.Ecco una buona risposta SO che i dettagli di conversione: http://stackoverflow.com/q/652916/971423 – Welsh