无法分配请求的地址

无法分配请求的地址

openssl req -new -x509 -days 8192 -newkey rsa:4096 -extensions v3_ca -config conf/caconfig.cnf -keyform PEM -keyout private/key.ca.pem -outform PEM -out certs/crt.ca.pem

我正在使用 nginx 与 IPv6 结合使用,目前没有任何问题,但是当我尝试部署 SSL 时,它失败了bind() to [...]:443 failed (99: Cannot assign requested address)

nginx 配置(没有服务器名称等):

# Works like a charm
server {
        listen          80;
        listen          [2a03:4000:2:3c8:6e65:6f6b:6572:80]:80;
        return 301 https://$host$request_uri;
}

# Cannot assign requested address
server {
        listen          443 ssl;
        listen          [2a03:4000:2:3c8:6e65:6f6b:6572:443]:443 ssl;
        #...
}

使用最后两个八位字节作为端口的 IPv6 地址对其他服务也非常有效。没有其他服务使用 :443 或该地址(通过ip addr show不提及它来验证)。

答案1

您无法listen使用服务器实际上未在其某个接口上配置的地址。您说的是,您的服务器的网络接口未针对该地址进行配置。

要解决该问题,请将该地址添加到您的网络接口配置中。

您还应该考虑让 nginx 绑定到任何地址,例如listen [::]:443 ssl

相关内容