2012-08-16 12 views
18

Sto costruendo un'app server in C++ che deve accettare un certificato contenente una chiave pubblica ECDSA. Deve convalidare il certificato e, previa verifica, utilizzare la chiave pubblica contenuta nel certificato per autenticare un messaggio inviato insieme al certificato. Tutto questo funziona usando i keypair dell'ECSDA generati dall'influenza, cioè il mio codice funziona bene, ma ora devo fare il pezzo del certificato. E ho pensato che potevo usare la riga di comando di OpenSSL per creare il certificato che è installato sul client (insieme alla chiave privata ECDSA in un file separato).Come creare un certificato ECDSA con la riga di comando OpenSSL

Qualcuno può aiutare?

Grazie mille.

risposta

28

Se non hai scelto una curva, è possibile elencarli con questo comando:

openssl ecparam -list_curves 

ho scelto sect571r1 per questo esempio. Usare questo per generare una chiave privata CE se non ne hai già uno:

openssl ecparam -out ec_key.pem -name sect571r1 -genkey 

e quindi generare il certificato. Il tuo certificato sarà in cert.pem.

openssl req -new -key ec_key.pem -x509 -nodes -days 365 -out cert.pem 

Consulta anche: req, ecparam

+2

'secp256k1' è probabilmente il più interoperabile in questo momento. – jww

+8

Penso che tu intenda "secp256r1". Secondo [questo post] (http://openssl.6102.n7.nabble.com/P-256-curve-not-supported-in-openssl-1-0-1-tp5379p5380.html) si parla di 'prime256v1' in OpenSSL. – oliverdm

Problemi correlati