K podpisu je potřeba certifikát a k němu příslušející privátní klíč. Dle pojmenování z php scriptu tedy
cat signcert.pem private.pem > sign.pem. Certifikační autorita je potřeba jen při ověření podpisu.
Když použiji čistě privátní zašifrovaný ...
..., tak to řve, že mu chybí certifikát
Když zkusím ale privátní s certifikátem certifikační autority ...
..., tak to řve, že privátní klíč neodpovídá veřejnému klíči v certifikátu.
Příkaz pro kontrolu, že jsou certifikáty správně:
echo -n "hello world" | \
openssl cms -sign -signed sign.pem -nodetach | \
openssl cms -verify -CAfile ca.pem
-nodetach říká, že má certifikát být v součástí podepsané zprávy, pamatuju-li si dobře. Zdá se, že certifikáty máte správně, pokud to openssl vezme.
Stránka na serveru se možná spustit nedá, ale mohlo by pomoct udělal si php skript, který bude volat jen tuhle jednu funkci a odladit do mimo server. Třeba nakonec zjistíte, že skript je dobře, jen ten server nemá přístup k certifikátům...