Nginx拒绝监听端口443

时间:2020-02-12 19:12:24

标签: ssl nginx https nginx-config

nginx出现问题,无法在端口443上监听。

在端口80上监听就可以了。我在下面包含了我的配置的一个片段:

public static final int UPPER_NAME_LIMIT = 20;
public static final int LOWER_NAME_LIMIT = 1;

不确定我要去哪里。我检查过的所有内容都表明它应该可以正常工作。

我在使用nginx 1.14.0的Ubuntu 18.04 系统上没有防火墙,本人与服务器之间也没有防火墙。 我已经对server { listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl on; ssl_certificate /var/www/certs/server.pem; ssl_certificate_key /var/www/certs/server.key; server_name server; root /var/www/server; access_log /var/log/nginx/server/access.log; error_log /var/log/nginx/server/error.log; index index.php; } nginx -t进行了多次配置检查。没有变化,端口无法为我打开。

2 个答案:

答案 0 :(得分:0)

要配置HTTPS服务器,必须在服务器块中的侦听套接字上启用ssl参数,并应指定服务器证书和私钥文件的位置:

server {
listen              443 ssl;
server_name         www.example.com;
ssl_certificate     www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;
...

}

单个HTTP / HTTPS服务器 可以配置一个同时处理HTTP和HTTPS请求的服务器:

server {
listen              80;
listen              443 ssl;
server_name         www.example.com;
ssl_certificate     www.example.com.crt;
ssl_certificate_key www.example.com.key;
...

}

在0.7.14之前,无法为各个侦听套接字选择性地启用SSL,如上所述。仅可以使用ssl指令为整个服务器启用SSL,从而无法设置单个HTTP / HTTPS服务器。添加了listen指令的ssl参数来解决此问题。因此不建议在现代版本中使用ssl指令。

基于名称的HTTPS服务器 配置两个或多个侦听单个IP地址的HTTPS服务器时,会出现一个常见问题:

server {
listen          443 ssl;
server_name     www.example.com;
ssl_certificate www.example.com.crt;
...

}

server {
listen          443 ssl;
server_name     www.example.org;
ssl_certificate www.example.org.crt;
...

}

答案 1 :(得分:0)

添加这些服务器块。

这是将http重定向到https

server {
   listen 80;
   server_name example.com; 
   location / {
          return 301 https://$host$request_uri;
   }
}

您的带有ssl的主块

server {
    listen 443 ssl ;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  
    index index.html index.htm index.nginx-debian.html;
    server_name example.com; 
    location / {
    proxy_pass http://localhost:5003; // Your port goes here
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
}

还要检查端口是否打开