我已经安装了一个新的SSL证书,并设置Nginx来使用它。 但是在试图点击网站上的HTTPS时请求超时。 当我在端口80上telnet到我的域时,它会连接,但在端口443上超时。我不确定在Ubuntu上是否有一些默认设置阻止连接。 cURL也超时到HTTPS地址,但响应常规的HTTP。
UFW状态显示:
443 ALLOW Anywhere
netstat -a显示:
tcp 0 0 *:https *:* LISTEN
nmap localhost显示:
443/tcp open https
Nginxconfiguration中的相关块是:
server { listen 443; listen [::]:80 ipv6only=on; listen 80; root /path/to/app; server_name mydomain.com ssl on; ssl_certificate /etc/nginx/ssl/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_pass http://mydomain.com; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
编辑:尝试了一系列的nginxconfiguration选项,我真的怀疑它的设置。 如果ssl-bundle.crt被搞砸了,会不会导致超时? 如果是的话,我可以回到PositiveSSL寻求支持。
尝试这个:
server { listen 443 ssl; listen [::]:80 ipv6only=on; listen 80; root /path/to/app; server_name mydomain.com ssl_certificate /etc/nginx/ssl/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_pass http://mydomain.com; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
(删除ssl on;添加ssl来listen 443; )
我想同意Steffen的评论(在相同的服务器块中听443和听80)。
请在不同的服务器块中处理HTTP和HTTPS。 我假设第二个listen指令覆盖了你的第一个listen指令。 另外,我在端口443的监听指令中错过了“ssl”关键字。
server { listen 80; listen [::]:80 ipv6only=on; root /path/to/app; server_name mydomain.com location / { proxy_pass http://mydomain.com; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 443 ssl; listen [::]:443 ssl ipv6only=on; root /path/to/app; server_name mydomain.com ssl on; ssl_certificate /etc/nginx/ssl/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_pass http://mydomain.com; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
正如用户xofer报告的,可以在一个服务器块中使用HTTP和HTTPS。 所以这个一体化解决scheme也是一个例子:
server { listen 80; listen [::]:80 ipv6only=on; listen 443 ssl; listen [::]:443 ssl ipv6only=on; root /path/to/app; server_name mydomain.com ssl on; ssl_certificate /etc/nginx/ssl/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_pass http://mydomain.com; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
这个问题不是Nginx的问题,也不是任何人都可以帮到的,所以我将在这里留下来,以防将来有人遇到这个问题。
问题是,当我在免费计划中时,443号港口在Cloudflareclosures。 他们不支持免费计划中的SSL。