我的目标是让Nginx在使用https时返回它的示例欢迎页面。
我使用certbot通过以下命令创建证书:certbot --nginx -d api.example.com
在我的/etc/nginx/conf.d/nginx-example-server.conf
中,我有以下代码块:
server {
listen 443 ssl;
server_name api.example.com
ssl_certificate /etc/letsencrypt/live/api.example.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
}
include /etc/letsencrypt/options-ssl-nginx.conf;
包括以下各项:
ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers: "<Lots of cyphers>"
ufw status verbose
返回:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
443/tcp ALLOW IN Anywhere # Open all to access Nginx port 443
80/tcp ALLOW IN Anywhere # Open access Nginx port 80
22/tcp ALLOW IN Anywhere # Open access OpenSSH port 22
8000 DENY IN Anywhere
443/tcp (v6) ALLOW IN Anywhere (v6) # Open all to access Nginx port 443
80/tcp (v6) ALLOW IN Anywhere (v6) # Open access Nginx port 80
22/tcp (v6) ALLOW IN Anywhere (v6) # Open access OpenSSH port 22
8000 (v6) DENY IN Anywhere (v6)
如果我访问https://api.example.com(当然不是真实的的url),它的响应是ERR_ADDRESS_UNREACHABLE
。/var/log/nginx/access.log
和/var/log/nginx/error.log
都不记录与ERR_ADDRESS_UNREACHABLE
有关的任何内容。
我试图找到我的ufw
日志文件,但没有任何。我试图找到他们在这里描述:https://serverfault.com/a/516840
我已经找遍了所有的提示,并遵循了一些教程。所有的结果都是相同的响应。我可以成功地通过http到达Nginx欢迎页面。
帮助是非常受欢迎的!即使它只是一个更好的方法来调试这个东西。
2条答案
按热度按时间1qczuiv01#
这修复了它:
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
如下所示:https://stackoverflow.com/a/50373181/6565435
snz8szmq2#
死灵在这里。
如果有人有同样的问题,试着检查你的
ip route
。也许一些接口“覆盖”了必要的ip地址。例如,它可能是一些docker-compose桥(接口的名称将像“br-...”)。要检查是否如此,您可以执行以下步骤:
systemctl disable docker
-禁用Docker服务自动启动。1.重新启动
1.再次检查
ip route
。如果一些桥现在没有出现,它们与docker服务绑定。为什么?有时候当你使用docker-compose时会发生这种情况:它创建了许多虚拟网络接口。