nginx无法加载文件 – ssl证书 – 即使它清楚地存在

我想用nginx来使用ssl。 我创build了必要的证书:

[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. 

这是我有的configuration:

 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 = / { ... } } 

任何人都可以告诉我,我错过了什么?

预先感谢您的善意帮助和时间。

Jenia。

我敢打赌, nginx并没有以root身份运行。 您在密钥/证书对上的权限只能由root读取。

我通常会创build一个www组,然后创build密钥root:www 440和cert root:www 444 (证书是公开发送给每个连接的,所以没有理由保密,只要确保它是不可编辑的)。 然后我确定apache (或者你喜欢的nginx )像www:www一样运行。

– 哦,呃…确保你没有密钥的密码; 或者如果你这样做的话(更好的安全性),确保nginx有一个规定,允许你在启动时提交密码短语。 (对不起,我从来没有试过使用nginx )。 然后准备好挂起并等待每次重新启动,直到可以到达控制台。

问题是路由,如你设置/ etc / gninx /ssl/server.crt; 应该是/ etc / nginx /ssl/server.crt;