walter

walter

Using Let's Encrypt with Distillery 2 and phoenix 1.4 without nginx

Howdy!

I’m updating a small deployment set up for a friend and have hit a snag. I’m not sure how to integrate Let’s Encrypt via certbot with a distillery based deployment.

I already have a distillery 1.5 based deployment set up on Ubuntu 16.04 based server handling http with nginx. I’m in the process of updating this to use distillery 2 and phoenix 1.4. I figured why not take advantage of cowboy 2’s http2 support and simplify the set up by getting rid of `nginx’ ala steps found in https://blog.progressplum.app/ssl-migration-from-nginx-to-cowboy-2-in-phoenix-1-4/.

I’ve been basing the set up off of https://medium.com/@a4word/phoenix-app-secured-with-let-s-encrypt-469ac0995775. However, this assumes a non-distillery based phoenix server (i.e. no releases) and uses Plug.Static to serve .well-known assets.

My question is how would this work with distillery?

I’m seeing some Elixir packages for handling acme stuff via the app itself, but nothing is jumping out at me as working with phoenix 1.4 well or in combination with distillery.

Most Liked

sasajuric

sasajuric

Author of Elixir In Action

I’ve written site_encrypt for this purpose. It’s been used for the past 6 months or so on my blog site. The blog itself is an Elixir powered system which uses Phoenix 1.3, and runs as an OTP release built with distillery 1.x. The project source can be found here. The Elixir project is in the site folder, so you can consult that as a template. There’s also a small demo project included in the library repo.

I haven’t tried using site_encrypt with Phoenix 1.4, but in theory it should work. If there are some problems, please open up an issue on GitHub.

alexgaribay

alexgaribay

Phoenix Core Team

I’m the author of the first article you linked to.

The examples I give are for Distillery, albeit Distillery 2.0. I give an example Mix.Config file that you can use for production. You’ll have to change the values themselves to values like "$MY_ENV_VAR" and allow values to be replaced at run-time with REPLACE_OS_VARS=true.

I’ll update the post to include how you’d do SSL renewal.

OvermindDL1

OvermindDL1

I find it easier just to use DNS authentication, doesn’t matter what web server you use then, just point them to the live certs is all. ^.^

Don’t need to stop the webserver at all, just make sure the webserver is pulling the live certs and you are good.

Where Next?

Popular in Questions Top

vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Other popular topics Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42533 114
New

We're in Beta

About us Mission Statement