首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NGINX上的SSL证书加载失败

NGINX上的SSL证书加载失败
EN

Stack Overflow用户
提问于 2020-02-20 19:09:13
回答 2查看 11.4K关注 0票数 6

我正在尝试安装一个SSL证书,该证书是我从Godaddy那里获得的,并安装到我的NGINX服务器上。我确信我所有的路径都是正确的,并且根据我所理解的,我的服务器配置是正确的,但我仍然得到以下错误。

代码语言:javascript
运行
复制
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的文件中。

代码语言:javascript
运行
复制
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用户,并通过chmod将文件权限更改为600。这不是正确的吗?有人能给我一些关于如何解决这个问题的指导吗?

**更新**

我检查了一下,发现SSL证书不属于root用户。我已经将所有SSL文件修改为root所有者和组所有,并将文件权限更改为600,我已经尝试了700。当我运行sudo ls -l时,我得到下面的输出

代码语言:javascript
运行
复制
-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

不过,我仍然收到相同的错误。我还尝试了普通证书和全链证书。有人知道这是怎么回事吗?

EN

回答 2

Stack Overflow用户

发布于 2020-02-21 03:56:23

我终于解决了我的问题。原来,当我移动文件(mv)时,它改变了文件的安全上下文,从而使它们对nginx不可读。我通过在我的根nginx文件夹上运行以下命令解决了这个问题。

代码语言:javascript
运行
复制
restorecon -v -R /etc/nginx

我在这个post里找到了这个。

谢谢你的帮助!

票数 9
EN

Stack Overflow用户

发布于 2021-08-13 23:10:50

解决方案: restorecon -v -R /etc/nginx -为我工作RHEL 8

将/etc/nginx/ssl/vhost/server.crt从unconfined_u:object_r:user_home_t:s0重新标记到unconfined_u:object_r:httpd_config_t:s0重新标记/etc/nginx/ssl/vhost/archive.pem ve.pem从unconfined_u:object_r:user_home_t:s0重新标记到unconfined_u:object_r:httpd_config_t:s0将/etc/nginx/ssl/vhost/intermediate.crt从unconfined_u:object_r:user_home_t:s0重新标记为unconfined_u:object_r:httpd_config_t:s0

只要重启nginx即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60318580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档