LINUX.ORG.RU
решено ФорумAdmin

nginx не читает ssl key

 ,


0

1

Внезапно всё сломалось и nginx выдаёт ошибку

2014/10/31 20:40:27 [emerg] 7042#0: SSL_CTX_use_PrivateKey_file("/etc/pki/tls/private/mysite.com.key") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/pki/tls/private/mysite.com.key','r') error:20074002:BIO routines:FILE_CTRL:system lib error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib)

Настройки:

/etc/nginx/nginx.conf:
...
user nginx;
...

/etc/nginx/conf.d/https.conf:
...
ssl_certificate_key  /etc/pki/tls/private/mysite.com.key;
...

$ id nginx
uid=497(nginx) gid=497(nginx) groups=497(nginx),496(sslkey)

$ ls -la /etc/pki/tls/private/mysite.com.key
-r--r-----. 1 root sslkey 3272 Feb  5  2014 /etc/pki/tls/private/mysite.com.key

делал su на юзера nginx, файл, как и ожидалось, можно открыть без проблем.

Всё работало без проблем. Единственное, на что грешу, какой-нибудь апдейт мог принести какую-нибудь selinux конфигурацию, я в этом ничего не понимаю. Больше мыслей нет. Делал даже chmod 777 на этот файл, всё равно ругается. Сертификат не просрочен.

★★★★★

Последнее исправление: Legioner (всего исправлений: 2)

Уверен, что nginx не сбрасывает сам себе дополнительные группы после запуска?

На случай с selinux, если ты уверен, что директория с ключом правильная, то можешь сделать

restorecon -rv /etc

Deleted
()
Ответ на: комментарий от Deleted

Ну и логи надо посмотреть, да.

Deleted
()
Ответ на: комментарий от goingUp

Без понятия, наверное включен. Centos 6.6 стоит с автообновлениями. Ничего, связанного с SELinux я сам не делал, ни включал, ни выключал.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Уверен, что nginx не сбрасывает сам себе дополнительные группы после запуска?

Я не знаю, что значит «сбрасывать группы». Пользователя сбрасывает с root-а на nginx. У пользователя nginx есть группа sslkey. Впрочем с 777 правами всё точно так же не работает, поэтому дело скорее всего не в этом.

На случай с selinux, если ты уверен, что директория с ключом правильная, то можешь сделать

restorecon -rv /etc

написало

restorecon reset /etc/pki/tls/private/mysite.com.key context unconfined_u:object_r:admin_home_t:s0->unconfined_u:object_r:cert_t:s0
(и ещё несколько файлов, не относящихся к делу).

nginx стартует. Правда отвалились другие вещи, но это уже надо отдельно разбираться.

Спасибо за решение. Теперь вопрос - почему так случилось и что делать, чтобы в дальнейшем не случалось?

Legioner ★★★★★
() автор топика

2014/10/31 22:32:13 [crit] 8135#0: *2 connect() to 127.0.0.1:20002 failed (13: Permission denied) while connecting to upstream, client: 81.4.110.134, server: mysite.com, request: «GET /jira HTTP/1.1», upstream: "http://127.0.0.1:20002/jira", host: «corp.f5-group.com»

блин, чего-то этот SELinux мне натворил, похоже. Надо будет его отключить к чертям собачьим.

Legioner ★★★★★
() автор топика

В /etc/selinux/config поменял опцию на SELINUX=permissive , перезагрузился, всё заработало.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Теперь вопрос - почему так случилось и что делать, чтобы в дальнейшем не случалось?

Потому что администратор сгенерил ключ в своём хомяке, а затем сделал mv вместо cp и перенёс файл вместе со старым контекстом (admin_home_t), который для огороженных сетевых демонов зашквар.

d_a ★★★★★
()
Ответ на: комментарий от Legioner

setenforce 0 => проверяешь осталась ли проблема => setenforce 1 => чинишь контексты на своих портах и файлах. Но дело хозяйское, конечно. Кому-то и iptables проще отключить, чем голову ломать.

d_a ★★★★★
()
Ответ на: комментарий от d_a

Мне всю жизнь хватало стандартных юниксовых прав, будет время - изучу этот selinux, пока он мне не нужен. Тут не только с файлами проблема, он ещё и к апачу не мог подключиться на локалхосте (nginx как reverse proxy настроен).

Legioner ★★★★★
() автор топика
Последнее исправление: Legioner (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.