2013-09-25 16 views
5

devo specificare un certificato con CURL ho provato con l'opzione --cert non sta funzionando.CURL di passare certifcate SSL e password

Potrebbe per favore fatemelo sapere per specificare l'archivio di chiavi e passpharse invocando con l'arricciatura?

risposta

12

dovrebbe essere:

curl --cert certificate_file.pem:password https://www.example.com/some_protected_page 
+3

Posso specificare un file JKS con questa opzione? – Adam

+0

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

3

aggiunta alla risposta precedente assicurarsi che l'installazione ricciolo supporta https.
È possibile utilizzare curl --version per ottenere informazioni sui protocolli supportati.

Se il ricciolo supporta https seguono la risposta precedente.

ricciolo --cert certificate_path: Password https://www.example.com

Se non supporta https, è necessario installare una versione CURL che supporta https.

0

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 
  • Fai chiavi vuoto:
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.