Elixir Plug: 配置HTTPS支持

garfieldcatcat 2019-06-20

基于 Elixir Plug: 使用Plug开发Web应用程序, 阐述了如何在配置Plug的SSL支持.

过程

第一步: 生成秘钥和证书

openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout ./key.pem -out ./cert.pem

第二步: 生成DH参数

openssl dhparam -out ./dhparam.pem 1024

这里为了省时使用1024, 正式环境建议4096, 大概半个小时的生成时间.

配置 Worker

defmodule PlugSample.HttpsWorker do

  def start_link do
    Plug.Adapters.Cowboy.https PlugSample.HttpsPlug, [],
      port:     443,
      otp_app:  :plug_sample,
      keyfile:  Path.expand(".") <> "/config/ssl/key.pem",
      certfile: Path.expand(".") <> "/config/ssl/cert.pem",
      dhfile:   Path.expand(".") <> "/config/ssl/dhparam.pem"
  end
end

启动

sudo iex -S mix

测试

如何测试

git clone https://github.com/developerworks/plug_sample.git
cd plug_sample
sudo iex -S mix

相关推荐