Hello @brywhi,
Can you confirm you are also running the healthcheck as www-data?
This checks currently encompass three items in the code:
$checks['gpg']['gpgKeyPrivate'] = (Configure::read('passbolt.gpg.serverKey.private') !== null);
$checks['gpg']['gpgKeyPrivateReadable'] = is_readable(Configure::read('passbolt.gpg.serverKey.private'));
if ($checks['gpg']['gpgKeyPrivateReadable']) {
$privateKeydata = file_get_contents(Configure::read('passbolt.gpg.serverKey.private'));
$blockStart = '-----BEGIN PGP PRIVATE KEY BLOCK-----';
$checks['gpg']['gpgKeyPrivateBlock'] = (strpos($privateKeydata, $blockStart) === 0);
}
Most likely this is the “is_readable” that is failing (can you show us the permissions on this file?), or the check for the block start (maybe there is a \n at the start?).