Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

爆速! AWS EC2(Amazon Linux)環境でHTTPS環境を建てる方法 (Caddy)

$
0
0

EC2でHTTPS化するの面倒

HTTPSは人権!
でもEC2環境だと。ロードバランサーやCDNをつけてやるのはお金がかかる!
かといって、Let’s Encryptのコマンド叩きたくない! Nginxを触るのも面倒!
そういうことよくありませんか?

そんなお悩みCaddyなら解決します!

Caddyを使えば、Let’s Encryptの証明書をとってきて、自動でリダイレクトまでやってくれる!
HTTP/2対応! Golangで書かれててなんかすごい気がする!
さああなたも試しましょう!

環境

マシン: EC2 t2.micro インスタンス

OS: Amazon Linux (Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0a1c2ec61571737db)

How to

ドメインの購入と、EC2のIP固定と、ドメインのAレコードをEC2のIPに向けるのは省略!
あともちろんセキュリティグループの設定で、ポート80と443はパブリックアクセスするのを忘れずに!

できた人は、SSHでEC2に入ります。

その後以下のコマンドを実行!

$ sudo amazon-linux-extras install epel

$ sudo yum install caddy

$ cd /etc/caddy/conf.d

$ sudo vim xxx.conf

以下の通りに編集!

example.jp {
  # 公開するディレクトリのパスを書くだけ
  root /var/www/public
}
$ sudo service caddy start

$ sudo service caddy status

なんとこれだけで対応したドメインでHTTPS化をして、HTTPからのリダイレクトもやってくれる...
つよい...

リバースプロキシしたい!

Node.jsとかで書いたAPIをHTTPSで出したいけど、リバースプロキシは面倒!
そんなお悩みもCaddyで解決!
さきほどのxxx.confを以下の通りにするだけ!

example.jp {
  # proxy パス プロキシするアドレスとポート
  proxy / localhost:8080

  # socket.ioを使用する場合は、websocketを追記するだけ!
  proxy /socket.io localhost:8080 {
        websocket
  }
}

※conf書き換えたら、ちゃんとリスタートしよう

$ sudo service caddy restart

Nginxなら数行書かないと対応しないWebSocketも一行で対応!
これは便利!

インスタンスが再起動しても動かしたい

このままだとインスタンスの再起動を行うと自動的に上がってこないので、その方法も紹介

$ sudo systemctl enable caddy

ちゃんと確認も...
$ systemctl is-enabled caddy

まとめ

これなら、AWSの無料枠のEC2でも気軽にHTTPS化!
タノシイ!

※ プロダクション環境では、もう少しちゃんとした方がいいです
※ Caddyのドキュメントわかりずらいと思うの自分だけ?
※ Amazon Linuxの例がなかったので書いてみた


Viewing all articles
Browse latest Browse all 8691

Trending Articles