Is there a way to digitally sign a x509 certificate or any document using openssl?
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