Nginx: 複数の引数を持つ server_name では SNI が機能しない

Nginx: 複数の引数を持つ server_name では SNI が機能しない

この Nginx 設定では:

server {

    listen 443 ssl;
    server_name www.x.nl x.nl;

    ssl_certificate /etc/nginx/ssl/x.nl.crtkeyca;
    ssl_certificate_key /etc/nginx/ssl/x.nl.crtkeyca;

    [...]

}

これは機能します:

openssl s_client -servername www.x.nl -connect localhost:443 < /dev/null

デフォルトの vhost CN を取得するので、これは実行されません。

openssl s_client -servername x.nl -connect localhost:443 < /dev/null

Ubuntu 12.04 LTS の標準 Nginx を使用していますが、残念ながら非常に古いです (1.1.19)。

新しいバージョンでも動作するはずですか、それともserver {}定義を複製する必要がありますか?

答え1

Nginx 1.8.0 でも同じ問題が発生しました。

私の場合、この問題は ssl_session_cache で異なる名前を設定することで修正されます (「???」を参照)。

ssl_session_cache shared:SSL_???:10m;

関連情報