誰でも 1) その方法を教えてくれますか、または 2) Erlang Web フレームワークで SSL を実行/有効化/使用する方法についてのリソースを教えてくれますか? ドキュメントやオンライン Web 検索で何も見つかりませんでした。彼らのメーリング リストへの最後の投稿は数年前のようです。
ありがとう。
誰でも 1) その方法を教えてくれますか、または 2) Erlang Web フレームワークで SSL を実行/有効化/使用する方法についてのリソースを教えてくれますか? ドキュメントやオンライン Web 検索で何も見つかりませんでした。彼らのメーリング リストへの最後の投稿は数年前のようです。
ありがとう。
Erlang Web アプリケーションで SSL を有効にする最初のステップは、基盤となる Web サーバーを構成することです。たとえば、Inet を使用している場合は、次のファイルを使用できます。
config/inets_https.conf:
構成ファイルの例 (Apache のような構文を使用) は次のようになります。
ServerName erlangweb_https
ServerRoot docroot
DocumentRoot docroot
BindAddress 0.0.0.0
Modules e_mod_inets
Port 443
SocketType ssl
SSLCertificateFile my.cert
SSLCertificateKeyFile my.key
SSLVerifyClient 0
「erlang」構文を使用して構成することもできます。
[{inets, [...]}].
Erlang Web サーバー構成ファイルの詳細については、次を参照してください。
http://wiki.erlang-web.org/Eptic/ServerConfiguration
そして、具体的には、Inet の場合:
http://www.erlang.org/doc/man/httpd.html
これを設定したら、次のようにアプリケーション コントローラーでユーザーを HTTPS にリダイレクトできます (サーバーがデフォルトのポートを使用していると仮定します)。
{redirect, "https://" ++ e_conf:host() ++ "/" ++ wpart:fget("__path")}.
サーバーがデフォルトのポートを使用していない場合、上記のリダイレクトは次のようになります。
{redirect, "https://" ++ e_conf:host() ++ ":" ++ e_conf:https_port()
++ "/" ++ wpart:fget("__path")}.
Erlang Web の構成パラメーターの詳細については、次を参照してください。
http://wiki.erlang-web.org/ProjectConf
冗長性を減らすために、Erlang Web 注釈を参照することをお勧めします。たとえば、次のように記述できます。
?BEFORE.
https(true, _Mod, _Fun, Args) ->
case wpart:fget("__https") of
false ->
Host = e_conf:host(),
Port = e_conf:https_port(),
Path = wpart:fget("__path"),
Redirect = "https://" ++ Host ++ ":" ++ Port ++ "/" ++ Path,
{skip, {redirect, Redirect}};
true ->
{proceed, Args}
end.
そして、コントローラーが機能する直前に使用して、HTTPS を強制します。
?HTTPS(true).
my_function(Args) ->
....