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;
#...
}
最後の2つのオクテットがポートであるIPv6アドレスを使用することは、他のサービスでも魅力のように機能します。他のサービスは:443またはそのアドレスを使用しません(それについて言及していないip addr show
を介して確認されます)。
サーバーがそのインターフェースの1つで実際に構成していないアドレスにlisten
することはできません。そして、あなたはあなたのサーバーのネットワークインターフェースがそのアドレスのために構成されていないと言いました。
この問題を解決するには、そのアドレスをネットワークインターフェイス構成に追加します。
また、nginxを任意のアドレスにバインドすることも検討する必要があります。 listen [::]:443 ssl
。