Имам някои затруднения да разбера процеса на подписване и проверка с openSSL.
Имам малка йерархия от сертификати: root cert => sub cert => end entity cert. Искам да имам сертификат за подписване на код от CA на крайния обект и по този начин създадох двойка ключове и поисках CSR:
openssl genrsa -out key.pem
...
openssl genrsa -pubout -in key.pem -out key.pub.pem
...
openssl req -new -sha256 -key key.pem -out id.csr
...
Изпращам своя CSR и получавам сертификата за подписване на код, съхранен в cert.pem. Разбирам, че този сертификат се използва само за целите на проверката (проверка на подписа) и моят код трябва да бъде подписан с частния ключ (key.pem):
openssl dgst -sha256 -sign key.pem -out program.sign program
По този начин имам program.sign, който е подписан с key.pem. След това трябва да проверя този подпис, като се има предвид, че имам 4 сертификата за валидиране на пътя: root.pem, sub.pem, end.pem, cert.pem.
Как мога да поискам от openssl да провери подписа с множество сертификати във веригата за проверка?
Опитах това, но разбира се не работи, защото посочвам само сертификата за подписване на код, без останалата част от веригата:
openssl dgst -sha256 -verify program -signature program.sign cert.pem
undable to load key file
Изпускам ли нещо ?
Благодаря ти много.