文章内容
2021/7/16 20:07:07,作 者: 黄兵
no "ssl_certificate" is defined for the "listen ... ssl" directive in
最近在配置nginx的时候出现如下错误:
nginx: [emerg] no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/sites-enabled/default:22
我们看看配置内容:
server { listen 80 default_server; listen [::]:80 default_server; listen 443 ssl default_server; listen [::]:443 ssl default_server; server_name _; rewrite ^/(.*) https://www.pdflibr.com/$1 permanent; }
出现问题的原因:
这里使用ssl指令,需要配置证书,这里没有指定证书路径,所以出现了以上问题。
解决方案:
1、新建/etc/nginx/ssl
目录:
sudo mkdir /etc/nginx/ssl
2、生成一个自签名证书,切换到/etc/nginx/ssl
目录,执行如下命令:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
这里生成了一个10年的自签名证书。
3、指定自签名证书路径:
server { listen 80 default_server; listen [::]:80 default_server; listen 443 default_server; listen [::]:443 default_server; server_name _; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; rewrite ^/(.*) https://www.pdflibr.com/$1 permanent; }
保存之后,执行sudo nginx -t
,测试通过。
参考资料:
1、nginx doc - Configuring HTTPS servers
2、Properly setting up a “default” nginx server for https
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - no "ssl_certificate" is defined for the "listen ... ssl" directive in
(MySQLdb._exceptions.OperationalError) (1142, "CREATE command denied to user ''@'' for table ''")
删除文件时出错,错误代码:4
删除文件时出错,错误代码:4
评论列表