En caso de recibir este error tras realizar una instalación de un certificado SSL en un servidor web Apache debemos revisar (en RHEL, CentOS, Scientific Linux, Fedora…) el estado de SElinux. Si está activado, probablemente sea el origen del problema:
# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted
En el log de auditoría veremos los siguientes errores:
# tail -200 /var/log/audit/audit.log | grep crt type=AVC msg=audit(1330769968.611:22): avc: denied { getattr } for pid=1657 comm="httpd" path="/etc/ssl/cert.crt" dev=dm-0 ino=22027 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file type=AVC msg=audit(1330770107.699:23): avc: denied { getattr } for pid=1676 comm="httpd" path="/etc/ssl/cert.crt" dev=dm-0 ino=22034 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file type=AVC msg=audit(1330770206.289:24): avc: denied { getattr } for pid=1697 comm="httpd" path="/etc/ssl/cert.crt" dev=dm-0 ino=22034 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file
Se presupone además que hemos revisado que el path al certificado es correcto y no está vacío. Para solucionar el problema debemos aplicar (etiquetar) los atributos de SElinux correctos a los ficheros del certificado (certificado, private key, CA). Una forma sencilla es «copiar» estos atributos de un fichero de configuración Apache, que ya los tendrá asignados:
# chcon --reference=/etc/httpd/conf.d/ssl.conf cert.*
O aplicándolo especificando todos los atributos:
# chcon -u system_u -r object_r -t httpd_config_t cert.*
Si listamos ya tenemos etiquetados los ficheros y podemos reiniciar Apache sin recibir el error:
# ls -Z -rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 cert.crt -rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 cert.csr -rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 cert.key