Назад | Перейти на главную страницу

nginx не может загрузить файл - сертификат ssl - даже если он явно там

Я хочу использовать ssl с nginx. Создаю необходимые сертификаты:

[root@arch ssl]# pwd
/etc/nginx/ssl
[root@arch ssl]# ls -l
total 12
-rwx------ 1 root root 1346 Aug  3 14:36 server.crt
-rwx------ 1 root root 1115 Aug  3 14:36 server.csr
-rwx------ 1 root root 1743 Aug  3 14:35 server.key

Но nginx не может загрузить эти файлы. Он говорит, что не может их найти:

systemctl -l status nginx

nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
Active: failed (Result: exit-code) since Sun 2014-08-03 14:50:04 EDT; 21min ago
Process: 21391 ExecStart=/usr/bin/nginx -g pid /run/nginx.pid; error_log stderr; (code=exited, status=1/FAILURE)
Main PID: 16458 (code=exited, status=0/SUCCESS)

Aug 03 14:50:04 arch nginx[21391]: 2014/08/03 14:50:04 [emerg] 21391#0:     BIO_new_file("/etc/gninx/ssl/server.crt") failed (SSL: error:02001002:system     library:fopen:No such file or directory:fopen('/etc/gninx/ssl/server.crt','r')     error:2006D080:BIO routines:BIO_new_file:no such file)
Aug 03 14:50:04 arch systemd[1]: nginx.service: control process exited, code=exited     status=1
Aug 03 14:50:04 arch systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Aug 03 14:50:04 arch systemd[1]: Unit nginx.service entered failed state.

Это конфигурация, которая у меня есть:

server {


   server_name localhost;
   listen 443;
   ssi on;        


   ssl on;
   ssl_certificate /etc/gninx/ssl/server.crt;
   ssl_certificate_key /etc/nginx/ssl/server.key;

   client_max_body_size 4G;



   location =  / {
       ...
   }
}

Кто-нибудь может сказать мне, пожалуйста, что мне не хватает?

Заранее благодарим за вашу помощь и время.

Женя.

Проблема заключалась в маршруте, как вы установили / etc /гнинкс/ssl/server.crt; который должен быть / etc /nginx/ssl/server.crt;

Держу пари nginx не работает как root. Ваши разрешения на пару ключ / сертификат доступны для чтения только пользователю root.

Я обычно создаю www группа и сделать ключ root:www 440 и сертификат root:www 444 (сертификат рассылается публично для каждого соединения; поэтому нет причин хранить его в секрете; просто убедитесь, что он не редактируется). Тогда я убеждаюсь, что apache (или nginx как вы предпочитаете) работает как www:www.

- о да ... Убедитесь, что у вас нет парольной фразы на ключе; или если вы это сделаете (это ~ лучшая безопасность), убедитесь, что nginx имеет положение, позволяющее вам отправлять парольную фразу, когда вы ее инициируете. (извините, я никогда не пробовал использовать nginx). А затем будьте готовы к тому, что он зависнет, и каждый раз при перезапуске ждите, пока вы не дойдете до консоли.