SSL сертификат на NGINX не загружается - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь установить сертификат SSL, полученный от Godaddy, на мой NGINX сервер. Я уверен, что все пути верны, и, насколько я понимаю, конфигурация моего сервера верна, но все равно я получаю следующую ошибку.

Feb 20 11:06:35 my.server.com nginx[6173]: nginx: [emerg] cannot load certificate "/etc/ssl/certs/certificate.crt": BIO_new_file() failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/ssl/certs/certificate.crt','r') error:2006D002:BIO routines:BIO_new_file:system lib)
Feb 20 11:00:01 my.server.com nginx[5969]: nginx: configuration file /etc/nginx/nginx.conf test failed

Ниже приведена моя конфигурация SSL. Я поместил это в файл по пути /etc/nginx/conf.d/ssl.conf.

server {
    listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  my.server.com;
        root         /usr/share/nginx/html;

        ssl_certificate /etc/ssl/certs/certificate.crt;
        ssl_certificate_key /etc/ssl/private/private.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
               proxy_pass http://[MY_IP_ADDRESS]:8443;
               proxy_http_version 1.1;
               proxy_set_header Upgrade $http_upgrade;
               proxy_set_header Connection 'upgrade';
               proxy_set_header Host $host;
               proxy_cache_bypass $http_upgrade;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
    }
}

Это похоже на проблему с разрешениями, но я запустил chown, чтобы изменить разрешения для пользователя root, и у меня есть изменил разрешение файла на 600 через chmod. Это не правильно? Может, кто-нибудь подскажет, как решить эту проблему?

** ОБНОВЛЕНИЕ **

Я проверил и обнаружил, что SSL-сертификаты не принадлежат пользователю root. Я изменил все файлы SSL, которые будут принадлежать владельцу и группе root, и изменил права доступа к файлу на 600, и я попробовал 700. Я получаю этот вывод ниже, когда запускаю sudo ls -l

-rwx------. 1 root root 7072 Feb 20 10:41 my.server.com.chained.crt
-rwx------. 1 root root 2277 Feb 20 10:36 my.server.com.crt
-rwx------. 1 root root 4795 Feb 20 10:39 intermediate.crt

Я все еще получаю ту же ошибку, хотя. Я также попробовал как обычный сертификат, так и сертификат с полной цепью. У кого-нибудь есть идея, что происходит?

1 Ответ

0 голосов
/ 20 февраля 2020

Я наконец решил свою проблему. Оказывается, когда я переместил файлы (mv), он изменил контекст безопасности файлов и таким образом сделал их нечитаемыми до nginx. Я решил проблему, выполнив следующую команду в моей папке root nginx.

restorecon -v -R /etc/nginx

Я нашел это из этой записи .

Спасибо за все помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...