文章内容
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
评论列表