为什么在 SSL 握手时监听 SSL 端口的服务器中没有定义“ssl_certificate”?

为什么在 SSL 握手时监听 SSL 端口的服务器中没有定义“ssl_certificate”?

我正在尝试使用 letsencrypt SSL 证书。为此,我遵循了以下说明这里

当我尝试通过浏览器访问该网站时,我不断收到 nginx error.log 上的消息: no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking

我最终得到以下配置:

server {
        listen 80;
        listen [::]:80;
        server_name admin.example.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name admin.example.com;

        ssl_certificate /etc/letsencrypt/live/admin.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/admin.example.com/privkey.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
        ssl_ecdh_curve secp384r1;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 8.8.8.8 8.8.4.4 valid=300s;
        resolver_timeout 5s;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;

        ssl_dhparam /etc/ssl/certs/dhparam.pem;

        location / {
                proxy_pass http://localhost:3010;
                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;
        }
}

当我尝试访问该网站时,我被重定向到 https,并显示无法访问网站的消息。

相关内容