1

在为 Nginx 设置 SSL 并发出请求后,我收到一个带有神秘消息的乱码响应client sent invalid method while reading client request line

我在 Alpine Docker 容器中使用 Let's Encrypt 生成了证书(对于上下文,与错误无关)。

这是一个屏幕截图:

客户端在读取客户端请求行时发送了无效方法

简化的 Nginx 虚拟主机配置如下:

server {

    listen 443;

    ssl_certificate /vsdroot/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /vsdroot/letsencrypt/live/yourdomain.com/privkey.pem;

    ssl_dhparam /vsdroot/letsencrypt/ssl-dhparams.pem;
    include /vsdroot/letsencrypt/options-ssl-nginx.conf;

    root /vsdroot;

    location / {
        index index.html;
    }

安全说明:我的 SSL 密钥位于 Nginx docroot 中,仅用于本地测试,请勿在生产环境或任何地方执行此操作!

4

1 回答 1

5

我缩小了导致问题的指令范围,并且能够通过修改listen服务器块上的行来一致地复制问题。

再生产。产生乱码和client sent invalid method while reading client request line错误。

listen线

server {
    listen 443;

略有不同的错误,但仍然没有骰子:

server {
    listen ssl;

产品

错误截图

...

固定的。错误消失了,我可以满足我的请求(纯 htmlfastcgi_pass等)。

配置:

server {
    listen 443 ssl;

...

利润截图:

花费比我愿意承认的将神秘错误缩小到单个listen指令的时间更多。

于 2021-02-05T15:04:45.183 回答