Certifikát není jen veřejný klíč, je to veřejný klíč + informace o vlastníkovi + to celé podepsané certifikační autoritou. Nevím, zda v openssl neexistuje nějaká zkratka pro použití veřejného klíče z certifikátu při ověřování. Každopádně to dgst je nízkoúrovňová operace, a moc se nepočítá s tím, že ji budou uživatelé používat přímo -- proto asi nebude mít podporu pro nějaké zkratky. Navíc by použití certifikátu bylo trochu matoucí, protože příkaz dgst pouze ověří, že podpis byl vytvořen privátním klíčem příslušným k zadanému veřejnému klíči. Ale neověřuje, že certifikát byl vydán důvěryhodnou CA, že nebyl odvolán ani nic dalšího.
Pro samotné podepsání souboru by asi bylo jednodušší na použití PGP -- pokud vím, tam se operace "podpis souboru" používá a existují pro to postupy. Při použití X509 (OpenSSL) samozřejmě můžete využít pro podpis souboru nízkoúrovňové operace, jak jste to udělal, ale pak si sám musíte nadefinovat, jak se vážou data podpisu k původnímu souboru, v jakém formátu jsou uložená atd.
Ve světě X509 se místo samotného podpisu souboru používá vytvoření kontejneru, který může obsahovat víc objektů (i soubory), následně se podepíše celý kontejner a k tomu se mohou připojit další objekty (např. certifikát příslušný k privátnímu klíči, kterým to celé bylo podepsáno). To popisují standardy PKCS#7, S/MIME a CMS. OpenSSL tyhle standardy podporuje, je ale zaměřené na e-maily, kde se to nejčastěji používá. Můžete ale vyzkoušet, jak se to bude chovat, když mu místo e-mailu podstrčíte váš podepisovaný soubor.