AWS EC2 Nano实例配置NGINX生成SSL证书遇重复默认服务器错误求助
解决NGINX重复默认服务器错误并生成SSL证书
第一步:处理重复的default server配置
错误提示明确指出/etc/nginx/sites-enabled/default:22存在重复的0.0.0.0:80默认服务器配置,原因是NGINX同时加载了你的自定义配置和默认的default配置文件,两者都声明了default_server标识。
两种处理方案二选一:
方案1:禁用默认配置文件
执行命令删除默认配置的软链接,让NGINX仅加载你的自定义配置:sudo unlink /etc/nginx/sites-enabled/default方案2:修改默认配置文件
编辑默认配置文件,移除其中的default_server标识:sudo nano /etc/nginx/sites-enabled/default找到第22行附近的以下内容:
listen 80 default_server; listen [::]:80 default_server;修改为:
listen 80; listen [::]:80;保存退出(nano编辑器按
Ctrl+O确认保存,回车后按Ctrl+X退出)。
第二步:验证并重启NGINX
执行配置测试命令,确认配置无错误:
sudo nginx -t
如果输出nginx: configuration file /etc/nginx/nginx.conf test is successful,说明配置正常,接着重启NGINX:
sudo systemctl restart nginx
第三步:生成SSL证书(测试模式)
现在可以正常执行certbot的dry-run测试:
方式1:让certbot自动配置NGINX
certbot certonly --dry-run --nginx -d my_server_name.com
方式2:使用webroot验证模式
先确保webroot目录权限正确:
sudo mkdir -p /var/www/html && sudo chown www-data:www-data /var/www/html
然后执行证书生成命令:
certbot certonly --dry-run --webroot -w /var/www/html -d my_server_name.com
额外注意事项
- 确保AWS EC2实例的安全组已开放**80(HTTP)和443(HTTPS)**端口,否则certbot无法完成域名验证。
- 如果dry-run测试成功,去掉
--dry-run参数即可生成正式证书。
内容的提问来源于stack exchange,提问作者el3phant0m
相关产品推荐
相关产品推荐

