无法连接到Ubuntu上的HTTPS端口

我已经安装了一个新的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;添加ssllisten 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。