なんかかきたい

プログラミングなどの個人的なメモやサークル「ゆきいろパラソル」の情報を載せてます

nginxでupstreamをhttpsにしたいとき

ちょっとだけ知って置く必要がある設定があるので残しておく。あまり難しくはない。

証明書を更新しておく

CentOSならyumDebianならapt、その他はいい感じに。

yum install ca-certificate

nginx をビルドする

がんばってください。

SSLを使うことになるので、http_ssl_moduleは入れておく必要がある。

opensslをリンクする場合、新しいものを使うのがおすすめ。

nginx.confを設定する

クライアント証明書が必要な場合は、ちゃんとした証明書と検証用にtrustedな証明書を設定する。

nginx.conf

server {
  resolver     8.8.8.8;
  listen       8080;
  server_name  _;

  proxy_ssl_protocols TLSv1.2;
  proxy_ssl_ciphers   HIGH:!aNULL:!MD5;
  proxy_ssl_server_name on;
  proxy_ssl_name REPLACE_REMOTE_ADDR;

  proxy_ssl_password_file       /path/to/client_cert_password;
  proxy_ssl_certificate         /path/to/client_cert_pem_with_password;
  proxy_ssl_certificate_key     /path/to/client_cert_pem_with_password;
  proxy_ssl_trusted_certificate /path/to/ca-bundle.crt;

  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          $remote_addr;

  location / {
    proxy_pass https://REPLACE_REMOTE_ADDR;
  }
}

各設定値について

resolver

外に行く場合の名前解決に使うDNS。IP指定の場合はいらないかもしれない。適切なDNSを指定する。

listen

nginxがlistenするポート

server_name

_ なので何でもマッチする。default_serverにするといい気もする。

proxy_ssl_protocols

proxyで接続する際に使うプロトコル。TLS1.2をサポートしているサーバの場合はこの設定でいい。

proxy_ssl_ciphers

proxyで接続する際に使うcipher。リモート側でサポートしているもので強いものを使う。

proxy_ssl_server_name

SNI対応用。proxy_ssl_nameとセットで使う。

proxy_ssl_name

REPLACE_REMOTE_ADDR を実際に接続する先の名前に置き換える。

リモートサーバにつなぎに行くときの名前を置く。SNIを使っているサーバがぼちぼちあるので指定するのが無難。

proxy_ssl_password_file

プロキシに使うSSL証明書のパスワードファイル。

クライアント証明書がパスワード付きならここにパスワードファイルを設定する。

proxy_ssl_certificate

クライアント証明書を指定する。クライアント証明書が不要ならいらない気もする。

proxy_ssl_certificate_key

クライアント証明書を指定する。クライアント証明書が不要ならいらない気もする。

proxy_ssl_trusted_certificate

証明書の検証に使う信頼された証明書を指定する。

CentOSだと /etc/pki/tls/certs/ とかに置いてあるらしい。

ディストリビューションによって違うのでいい感じに設定するか、curlのをもってきてもいい。

proxy_set_header

いい感じに設定する

終わり

この辺触る人あんまりいなさそうなので地味なハマり方をして消耗する人はいそう。頑張って欲しい。