SELinux Adaugă un nou certificat SSL și modifică contextul cu restorecon
Feb. 5, 2016, 3:17 p.m. centos ssl selinux apache
După ce copiem un noul certificat ssl în /etc/httpd/ssl
SELinux va bloca accesul la fișier dacă acesta nu are contextul potrivit.
Dacă vedem un mesaj de eroare și Apache nu pornește, aruncăm o privire în log-ul SELinux ca să vedem că asta este problema. Verificăm incă odată local contextul fișierului cu ls -Z
, și folosim restorecon
ca să asignăm contextul potrivit:
$ pwd
/etc/httpd/ssl
$ ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_config_t:s0 apache.crt
-rw-r--r--. root root unconfined_u:object_r:httpd_config_t:s0 apache.key
-rw-r--r--. raz raz unconfined_u:object_r:user_home_t:s0 spaceport.avproiect.com.crt
$ sudo restorecon -v $PWD/spaceport.avproiect.com.crt
restorecon reset /etc/httpd/ssl/spaceport.avproiect.com.crt context unconfined_u:object_r:httpd_config_t:s0->system_u:object_r:httpd_config_t:s0
$ ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_config_t:s0 apache.crt
-rw-r--r--. root root unconfined_u:object_r:httpd_config_t:s0 apache.key
-rw-r--r--. raz raz system_u:object_r:httpd_config_t:s0 spaceport.avproiect.com.crt
$ sudo chown root:root spaceport.avproiect.com.crt
Uneori nu merge treaba ca la carte și trebuie să forțăm nota cu opțiunea -F
- nu îmi e clar de ce.
$ sudo restorecon -RvF $PWD/ssl
Atenție se lucrează întodeauna cu "full-path", de aceea am folosit $PWD
mai sus.
Să verificăm și lista de contexte predefinite, care vor fi aplicate de restorecon
:
$ semanage fcontext -l | grep httpd_config
/etc/httpd(/.*)? all files system_u:object_r:httpd_config_t:s0
/etc/nginx(/.*)? all files system_u:object_r:httpd_config_t:s0
/etc/apache(2)?(/.*)? all files system_u:object_r:httpd_config_t:s0
...
/etc/httpd/ssl(/.*)? all files system_u:object_r:httpd_config_t:s0