76
されますクラウアとのネゴシエショによりサーバーと
す。
SSL/TLSキーがて公開されてる場合、成によてロ
たり公たりする可あります。数と
開する場密なクセスコロールがある
確 認してく
SSLョンシュとタよりNGINXワーセスセッシ
パラキャッシて保できますNGINX ー プ 、こ
ャッシュを単インスタンス化のプスと有し
ースース ュリ
ティ多くッショキャッシュオプショありますセッシンキ
シュプションをて使 きますしかフォトなし
フォルトルトイン ョンります。
解説
の高度な例では、NGINXは、TLSョン1.2また1.3SSL/TLSオ プ シ ョ ン 、高 く
価されている暗号アズムRSAま た は 号( ECC)形 使
能をクライアントに供しますクライアンできる最力なプ
ル、ー形式は、ンの結果成は、10 MB使用可能な
リーり当10ゴシエーョンをキャシュするようにNGINX す。
ストで ECC証明書は同等の強度のRSA速であとがわか
た。キーサズが小さため多くSSL/TLS き 、ハ ド シ ェ
ります。NGINX使と、数の証書とキーを構成しクライアン
ウザに最適な証明書を提供でれにいテを利用
がらいクライアントにサービスを提できます
このNGINXクライアンックを暗化していま
ただプスサーーへの続も暗化される場があ
ります。NGINXトリサーバーネゴシエーショ
ップスト す。
項目
Mozilla ー側 TLSペー
Mozilla SSL成ジレータ
SSL テストSSLラボのSSLストで
| 7キュリティコントロール
77
7.5スト
問題
NGINXとアトリームトラフィンス
ネゴシエーションルールするありますそう
プスリーサービスがセキ護されワーク通になります
解決
HTTPジューSSL 使 用してSSL す:
location / {
proxy_pass https://upstream.example.com;
proxy_ssl_verify on;
proxy_ssl_verify_depth 2;
proxy_ssl_protocols TLSv1.2;
}
ィレ ィブ NGINX 、特 SSL す。
成されたディレクテによNGINXリーサービスの書と
ーン 最 大 2証明書の範囲有効で検証
proxy_ssl_protocolsィレ NGINXTLSジョン1.2使よう
す 。デ ト で NGINXはアプスム証明書をせずべて
TLSージンを受け入れます
解説
HTTPジュールティブあり、アッームトラフ
ックするなくともをオンするあり
す。proxy_pass ディティのプするだで、HTTPS
介しキシきますだしアットリーム証しません
proxy_ssl_certificateproxy_ssl_certificate_keyのよなそディクティ
キュリティのアッストーム ウンること
に し す 。ま た proxy_ssl_crlすることもきます。
この なくなったSSLプロ
ィレ ット ット全 体
ムの通信チネルを強化すのに役立ち
7.6ョン
問題
クレッ使ションブロックするあり
7.5 ストリ |
78
解決
リンsecure_link_secretディィブ使 用して、リソスへ
クセスセキンクを持つユーザーしま
location /resources {
secure_link_secret mySecret;
if ($secure_link = "") { return 403; }
rewrite ^ /secured/$secure_link;
}
location /secured/ {
internal;
root /var/www;
}
によ部および公ロケーシンブロックが成されます開ロケーシ
ブロック/resourcesストURIに、secure_link_secretィレ
ットで md5ッシ含まれてい限り、403 Forbidden
す。URIのハッシュが証され限り、$secure_link す。
解説
レッ使用してリソースをすることはファイするた
優れた方法ですシークURI 使 、こ
列はmd5シュさ md5ハッ16イジスト URI 使 す。
ッシュはンク内置されNGINXによ価されますNGINX 、ハ ッ シ ュ
の後のURIあるためされているァイのパ識していまNGINX
は、secure_link_secretレクテブを介し供されるためあなたのシーク
トも識していますNGINXmd5ッシュをすやく証しURI$secure_link
納できまッシを検証できない合、空の文定されま
す。secure_link_secret渡される引的な列でなばならない点に
さ い 。変 に す る と は で き ま せ ん
7.7 使 キュリン
問題
使 リン ります。
解決
NGINXのセンクモジルはmd5ハッシュ 16進ダトを受け
。こ URIパ ス と ト を 結 し の で 。最 セ ク
いて、/var/www/secured/index.html 仮 定してレシピ 7.6前の
キュ す。
| 7キュリティコントロール
79
md5ハッシュ16 イジスト Unixopenssl ンド使
す:
$ echo -n 'index.htmlmySecret' | openssl md5 -hex
(stdin)= a53bee08a4bf0bbea978ddf736363a12
こ こ 、保 URIindex.htmlを、クレトと連結した示します
ットmySecret 。こ の opensslンド md5 16進ダ
ジェス力されます
以下はPython準ライブラ含まれていhashlib 使 用して Python
スト す:
import hashlib
hashlib.md5.(b'index.htmlmySecret').hexdigest()
'a53bee08a4bf0bbea978ddf736363a12'
ハッスト URL 使 。こ こ で www.example.
com/resources して /var/www/secured/index.html をリ
し ま 。完 URLのとおりです
www.example.com/resources/a53bee08a4bf0bbea978ddf736363a12/
index.html
解説
ダ イ ジ ェ さ ま ざ ま な で 、多 き ま 。留 URI
クレ ャリリタなくmd5ハッ
16 使 用してく
7.8ョン
問題
のいつ時点になクライアントに固有のクを使ロケー
ョン ります。
解決
キュアリクモジュー含まれていディクティ用して、
、セ 使 す :
location /resources {
root /var/www;
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addrmySecret";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}
7.8 ョン |
80
secure_linkディクティカンマ区切りの2ラメーります。 ラメー
タはmd5持つ変の例では、md5HTTP 使 用して
2ラメー リン なる Unixエポク時間形式で保持す
す。secure_link_md5ィレ md5の生成使文字列
する1ラメーります。 ハッ
には$secure_link数は空の文字列に設定さし、使用事例の場合
一 致して 失 効して 場 合 $secure_link数は0 す。
解説
を保護すの使用法は、レシピ 7.6れてsecure_link_secretより
あり、っきりいますらのディティブ使すると、
シュNGINX使きるらず使きまハッシュ
でユザー使用すユーザーはセキ護さ
へのンクを交できないため、セキ化されま$remote_addr
たは$http_x_forwarded_forなど数、またはアプリケーシンによて生成され
セッョンcookieッダーを使用すとが奨されまsecure_link 、任
から得でき、名前付けとができますクセスはあります
アクか?アク アク
ものの、遅れたHTTP410ペーした効したリに一
ていますだと認識さていためです
7.9 るリン
問題
るリン ります。
解決
Unixエポク形式で有のタムスプを生Unix ス テ 、次
示される法で日付使用しできま
$ date -d "2020-12-31 00:00" +%s --utc
1609372800
次に、secure_link_md5ィレィブ と一 ようハッ
するありこのスで使る文1293771600/
resources/index.html127.0.0.1 mySecretす。md5ハ ッ シ ュ 、単 な る 16イジスト
り ま 。こ base64でエンコードされバイナリ形md5ュで
プ ラ 号( +がハイフン- ス ラ ュ( /)が ア( _)に
、等 =)が れ て い Unixムで す:
| 7キュリティコントロール
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.26.176