Help us understand the problem. What is going on with this article?

Amazon Linux2でLet's EncryptするのをItamae化

はじめに

RailsアプリケーションのサーバーをItamaeで管理しているます。
環境構築時にELBを立てず、サーバー直接でアクセスさせる場合、サーバーへのSSL証明書の設定が必要になります。
サーバーはAmazon Linux2で、SSL証明書はLet's Encriptで取得するのをItamae化してみました。

nginx, Itamae, Certbotのインストール、構築は既に済んでいるものとします。

環境

  • サーバー
    EC2

  • OS
    Amazon Linux2

  • バージョン
    Rails: 5.x.x(複数プロジェクト)
    Ruby: 2.x.x

手動構築手順

参照:
https://qiita.com/MysteriousMonkey/items/4d3d857c0e68d4bfff39[https://qiita.com/MysteriousMonkey/items/4d3d857c0e68d4bfff39]

簡単に説明すると、下記コマンドを打つ

$ sudo certbot --nginx

すると、対話式でメールアドレス、対象ドメイン、規約への同意などなどの確認があったのち、SSL証明書が作成され、nginx.confに自動的に設定される.

その対話をコマンドオプション指定でなくすことができるかどうかが今回の争点!

結論

  • cookbooks/certbot/default.rb
execute 'download EPEL7' do
  user 'root'
  command "wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/"
end

execute 'install EPEL7' do
  user 'root'
  command "rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm"
end

execute 'enable EPEL7' do
  user 'root'
  command 'yum-config-manager --enable epel*'
end

package 'certbot'
package 'python2-certbot-nginx'


execute 'SSL証明書を作成' do
  user 'root'
  command "certbot --nginx -d #{node[:dns][:server_name]} --agree-tos --register-unsafely-without-email -n"
end

やったこと

  • Amazon Linux 2 でEPEL7を使用可能にする。
  • certbotとpython2-certbot-nginxをインストール
  • 証明書の作成
    • オプション
      • -d example.com # => DNSを指定。nginx.confのserver_nameと同じにする
      • --agree-tos # => 規約に同意
      • --register-unsafely-without-email # => メールを登録しない(非推奨)
      • -n #=> 対話をなくす

certbot自体のオプションはそのまま流用可能なようなので、registerする場合は

--email test@example.com

などの指定も可能。

これでめっちゃ手軽にLet's Encript生活!!

事後作業

証明書更新のCronの設定は適宜参照してください。===>> 上記URL

参考にさせていただいたサイト

Motozzi
元カフェ店長で今はフリーランスでRailsメインのSEやってます! 人生楽しくいられることがモットー[@_@] バーテンたまにやりたい。 ゲストハウス立てたい。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした