Digital signature for a file using openssl

Ajay kumar picture Ajay kumar · May 28, 2012 · Viewed 81.6k times · Source

Is there a way to digitally sign a x509 certificate or any document using openssl?

Answer

reto picture reto · Aug 21, 2013

Alternative way to sign/verify a single, inspired by Anders Lindahl's answer.

to sign

openssl dgst -sha256 -sign snakeoil.key -out some-file.sha256 some-file 

to verify

# dgst -verify requires the public key
openssl x509 -in snakeoil.crt -pubkey -noout > snakeoil.pub

openssl dgst -sha256  -verify  snakeoil.pub -signature some-file.sha256 some-file

# in case of success: prints "Verified OK"
# in case of failure: prints "Verification Failure", return code 1

# or compact (requires a modern shell)
openssl dgst -sha256  \
    -verify  <(openssl x509 -in snakeoil.crt -pubkey -noout) \
    -signature some-file.sha256 some-file