nginxを更新して nginx -t
をした時に nginx: [warn] the "ssl" directive is deprecated,...
と表示されて頭を抱えたときの対処法。
結論
落ち着いてエラーメッセージをちゃんと読もう。
ssl on;
を消して、Listen
のところに書こう。
どうやったらいいの
おそらく設定ファイルがこのようになっているはず。
server {
listen 443 http2;
listen [::]:443 http2;
root /var/www/public_html;
index index.php index.html index.htm;
server_name contoso.com;
ssl on; <-これがだめ
ssl_certificate /hoge/nanka;
ssl_certificate_key /hoge/huga;
...
}
ssl on;
と書かれている部分がある。ここを消す。
次に、Listenディレクティブに ssl
を足す。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
root /var/www/public_html;
index index.php index.html index.htm;
server_name contoso.com;
# ssl on;
ssl_certificate /hoge/nanka;
ssl_certificate_key /hoge/huga;
...
}
これで sudo nginx -t
をしてみよう。消えているはず。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
くわしくしりたい
[nginxのドキュメントに書かれている。] (http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl) nginx 1.15.0で廃止されたようだ。