nginx

A collection of 5 posts
nginx

nginx 1.19.4 以降で ChaCha20-Poly1305 の運用が現実的になった件

はじめに 先日、nginx 1.19.4 がリリースされ、ssl_conf_command ディレクティブが追加されました。 これにより、ChaCha20-Poly1305 を使った暗号スイートの運用が現実的になりました。 ChaCha20-Poly1305 の概要 RFC 7905 [https://tools.ietf.org/html/rfc7905] (2016/06) より、TLS における ChaCha20-Poly1305 の利用が標準化され、様々なライブラリで利用可能になっています。 OpenSSL だと 1.1.0 以降で利用可能です。 ChaCha20-Poly1305 は、ストリーム暗号である ChaCha20 とメッセージ認証符号である Poly1305 を組み合わせた、認証付き暗号です。 ChaCha20-Poly1305 はソフトウェア処理に向いた、簡潔なアルゴリズムです。 AES
1 min read
nginx

サブリクエスト内部のコンテキストに注意

アップローダの認証を API に行わせる、という設定をしていて、少しハマった。 こんな設定を入れてみたところ、クライアントからの POST リクエストが返ってこない。 location /api { proxy_pass http://backend-api; } location /uploader { auth_request /api/authn; client_max_body_size 0; proxy_buffering off; proxy_request_buffering off; proxy_pass http://backend-uploader; } ちょっと調べてみると、 auth_request によるサブリクエストをプロキシするときは、ボディを空にしないと行けないらしい。 これは 公式の例 [http://nginx.org/en/docs/http/
1 min read
nginx

nginx と openssl-1.1.1 で TLS 1.3 の暗号スイートを "ムリヤリ" 設定する

2020/02/04 追記 こんなことしなくても openssl.cnf でデフォルト設定できるんですね。知らなかった…。 経緯 openssl 1.1.1 で TLS 1.3 がサポートされましたね。 nginx でも使えますが、実はまだ完全ではありません。 ssl_ciphers を設定しても、TLS 1.3 の暗号スイートは、指定した順序にはならず、デフォルトの下記の順になってしまいます。 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 これは openssl で、TLS 1.
1 min read
nginx

MacBook に nginx でフォワードプロキシを立てておくと何かと便利

閉域ネットワークに設置されたサーバのメンテ中、サーバから外にアクセスしたいなと思いました。 閉じたネットワークに、MBP を有線でつないでいて、MBP からはポータブル Wi-Fi 経由で外に出れる状況です。 ------+------------+--------- 閉域ネットワーク | | +----+----+ | | サーバ | ... | +---------+ | 有線 | +----+----+ | MBP | - - - >> ポータブル Wi-Fi - - - >> [インターネット] +---------+ というわけで、下記のような感じで MBP に nginx でフォワードプロキシを立てました。 [MBP]$ brew install nginx [MBP]$ vi /usr/local/etc/
1 min read
nginx

[雑記] nginx の proxy_set_header の扱い

proxy_set_header の動きがちょっとおかしいなと思ったのでメモ。 * バージョン * nginx 1.2.6 リバースプロキシを使う際、下記のような感じで、お決まりの proxy_set_header を http コンテキストで設定しておくと思います。 http { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Real-IP
1 min read