443 で default_server を入れたら通信がおかしくなる件
nginx でドメインをキャッチオールして、別サーバーのnginx へ丸投げする、多段nginx の設定を書いていたら、80 だと動くんだけど、443 で動かない。
listen 443 ssl https default_server
をつけると動かなくなる件
Chrome で接続すると、次のようになる。
SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET
原因がわからず結構苦労した。
SNI かと思ったけど、どうも違う。SSLのセッションチケットが変わってしまうようです。
これは動くんですが、
listen 80 http default_server listen 8080 http default_server
ssl をつけると動かない。
listen 443 ssl http2 default_server listen 8443 ssl http2 default_server
Errors from browsers with ssl_session_tickets off (nginx)
nginx の メインの設定( server { } 外)に 次の設定を書いて、既存のSSLのセッションを無視するようにする。
ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off;
たぶんだけど
SSLのセッションはChromeが管理していて、以前の接続と違うSSLが開始したら、MITMとか?エラー検出してるんだと思う。
そういえば、default_server と server で使ってる証明書は別でした。
参考資料
https://community.letsencrypt.org/t/errors-from-browsers-with-ssl-session-tickets-off-nginx/18124/5