$x509->sign($issuer, $subject, 'sha256WithRSAEncryption');
Закрытый ключ $issuer
должен быть экземпляром RSA, чтобы это работало, но именно так вы и сделаете.
Вероятно, он игнорирует вещь setHash('sha256')
, потому что (1)не все хеши, которые вы можете использовать с RSA, имеют OID, о которых знает X509.php, и (2) опции, доступные в RSA - такие как PSS сигнатуры - не поддерживаются X509.php и могут не иметь определенных OID.любым IETF RFC и может не поддерживаться другой другой реализацией X509.