nginx上把http升级到Https 的时候报错,:No such file or directory

这里我的nginx配置文件

 ssl on;
    ssl_certificate 1_www.***.top_bundle;
    ssl_certificate_key 2_www.***.top.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

这是我的https证书存放路径

/usr/local/nginx/conf

权限都是777

[root@VM_125_172_centos nginx]# ls -lha /usr/local/nginx/conf
total 92K
drwxr-xr-x  3 root root 4.0K Jan 10 10:47 .
drwxr-xr-x 11 root root 4.0K Jan 10 11:58 ..
-rwxrwxrwx  1 root root 3.6K Jan 10 01:15 1_www.***.top_bundle.crt
-rwxrwxrwx  1 root root 1.7K Jan 10 01:15 2_www.***.top.key

当我执行 nginx -s reload的时候报错了

nginx: [emerg] BIO_new_file("/usr/local/nginx/conf/1_www.****.top_bundle") 
failed (SSL: error:02001002:system library:fopen:No such file or 
directory:fopen('/usr/local/nginx/conf/1_www.***.top_bundle','r') 
error:2006D080:BIO routines:BIO_new_file:no such file)
阅读 3.6k
3 个回答

证书强烈建议用绝对路径,保存到 /root/certs目录中,配置的时候也是这样

你的ls命令展示的

1_www.***.top_bundle.crt

你的配置

 ssl_certificate 1_www.***.top_bundle;

后缀不对

根据提示应该是文件不存在,楼主把ls -lha /usr/local/nginx/conf的结果贴出来看看呢。。

文件名不对

ssl_certificate 1_www.***.top_bundle; 
=> 
ssl_certificate 1_www.***.top_bundle.crt;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题