1

誰でも 1) その方法を教えてくれますか、または 2) Erlang Web フレームワークで SSL を実行/有効化/使用する方法についてのリソースを教えてくれますか? ドキュメントやオンライン Web 検索で何も見つかりませんでした。彼らのメーリング リストへの最後の投稿は数年前のようです。

ありがとう。

4

1 に答える 1

2

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) ->
    ....
于 2012-04-11T07:51:34.913 に答える