2017-04-21 18 views
0

私は2台のサーバを持っています。サーバーAはASP.NETを実行するWindowsサーバーであり、サーバーBはNginxを実行するLinuxサーバーです。サーバーAからサーバーBへユーザーを安全にリダイレクトする必要があります。私はサーバAに次のようなリダイレクトのクエリパラメータにip=132.65.78.4;[email protected];node=abcのような値を暗号化させたいと思います:https://serverb.example.com?encrypted=<encrypted value here>nginx:クエリのパラメータを解読する

次に、サーバB(共有秘密鍵を使用)にクエリパラメータの復号化を行い、から、要求を処理するためにusernodeの値を信頼してください。

これを行うにはどうすればnginxを設定できますか?答えに基づいてサーバーAの部分を自分で見つけることができます。ありがとうございました!

答えて

1

"nginx lua"モジュールを使用することをお勧めします。これにより、リクエストの一部をLuaコードで変更できるようになります。

クエリ文字列を具体的に変更する機能があり、暗号化を実行して「暗号化」値を設定できます。

set_by_lua_block $validated { 
    local enc = ngx.var.arg_encrypted 
    local decrypted = decrypt(enc) 

    return do_some_validation(decrypted) and "1" or "0" 
} 

if ($validated = "0") { 
    return 403; 
} 
+0

Thxを:だから、おそらくあなたのような何かをするかもしれないあなたは、要求の引数を処理したい場合には

https://github.com/openresty/lua-nginx-module#ngxreqset_uri_args

、あなたがset_by_lua_blockまたはset_by_lua_file

経由でこれを行うことができます!私の目標は、nginx側が暗号化されたメッセージを_decrypt_するだけで済むようにすることです。私はまだそれのために "nginxルア"を使用するか? – berg

+0

これらの行に沿った提案で私の答えを編集しました –

関連する問題