Sto tentando di effettuare chiamate di prova a un'API di terze parti che richiede un certificato cliente. Ho generato un nuovo cert utilizzare questo comando con OpenSSL:Ottenere (58) impossibile utilizzare il certificato client (nessuna chiave trovata o frase errata?) Da arricciatura
req -new -newkey rsa:2048 -nodes -out mycsr.csr -keyout mykey.key
Ho quindi inviato loro la RSI, e mi hanno mandato indietro mycert.crt. I concatenati il CERT e la chiave insieme:
cat mycert.crt mykey.key > mycertandkey.pem
Infine, mycert.crt aggiunto alla cartella di ca-certificates e ca-certificates.conf e corse "update-ca-certificates --fresh".
Ora, io sto cercando di fare la chiamata ricciolo dalla bash utilizzando il seguente comando:
curl -X GET --cert mycertandkey.pem -H 'Accept-Encoding: gzip,deflate' -H 'Content-Type: application/json' https://api.URL.com
Ho anche provato:
curl -X GET --cert mycertandkey.pem --cacert mycert.crt -H 'Accept-Encoding: gzip,deflate' -H 'Content-Type: application/json' https://api.URL.com
e:
curl -X GET --cert mycertandkey.pem --cacert mycert.crt --key mykey.key -H 'Accept-Encoding: gzip,deflate' -H 'Content-Type: application/json' https://api.URL.com
E ogni altra combinazione che riesco a pensare. Ricevo sempre l'errore "arricciatura: (58) impossibile utilizzare il certificato client (nessuna chiave trovata o frase errata?)". La chiave non ha una passphrase. Tutti i file cert/key hanno 777 permessi.
Non ho lavorato molto con i certs in passato e mi sento come se mi mancasse qualcosa, soprattutto perché mi sembra di avere un solo certificato. Il certificato è che l'altra società mi ha inviato un cacert o è il mio cliente cert? Ho concatenato la chiave privata con il certificato sbagliato?
Ho trovato molte informazioni frammentarie su questo online, ma se qualcuno conosce un buon tutorial su questo argomento, lo apprezzerei molto.