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
。