0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AmazonLinux2023でcaddyインストール

Posted at

概要

AmazonLinux 2023でEPEL repo が利用できず、caddyのインストールはマニュアルインストールしか手段が見当たらなかったので、その作業メモです

対象者

  • ルール上でAny許可できるtcpポートがhttp/https等に限られている。わざわざALB用意したくない
  • httpsには対応したい。だけど証明書の用意は面倒
  • caddyで証明書付きのリバプロ構築しようとしたが、AmazonLinux2023でEPEL利用できず、つまづいた

対応手順

caddyを手動でインストールし、内部証明書を使ってhttps対応のリバースプロキシロを起動します。

バイナリをダウンロード

curl -OL https://github.com/caddyserver/caddy/releases/download/v2.6.4/caddy_2.6.4_linux_amd64.tar.gz
tar -xvf caddy_2.6.4_linux_amd64.tar.gz caddy
sudo mv caddy /usr/bin/

# 実行可能であることを確認
caddy version

他のバージョン利用時はこちらから
https://github.com/caddyserver/caddy/releases

設定追加

caddy用のディレクトリおよび設定ファイルを配置

sudo mkdir -p /etc/caddy/conf.d

# 設定追加
cat <<EOF | sudo tee /etc/caddy/Caddyfile
http:// {
    redir https://{host}{uri}
}

import conf.d/*.conf
EOF

http → https のリダイレクトおよびimport設定追加
利用アプリケーション向けのリバプロ設定を追加 (ドメイン指定時はDNS登録もしくは名前解決可能であること)
※設定は利用環境にあわせて行ってください
細かな設定方法は本記事では割愛します

/etc/caddy/Caddyfile

http:// {
    redir https://{host}{uri}
}

import conf.d/*.conf

/etc/caddy/conf.d/myapp.conf

vault.sample.net localhost 127.0.0.1 {
    tls internal
    reverse_proxy https://127.0.0.1:8200 {
        health_uri /v1/sys/health
        health_timeout 10s
        health_status 2xx
        transport http {
            tls_insecure_skip_verify
        }
    }
}

systemd で起動設定

起動に使用するユーザー、グループ追加

sudo groupadd --system caddy

sudo useradd --system \
    --gid caddy \
    --create-home \
    --home-dir /var/lib/caddy \
    --shell /usr/sbin/nologin \
    --comment "Caddy web server" \
    caddy

/etc/systemd/system/caddy.service を作成

[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

起動、動作チェック

sudo systemctl daemon-reload
sudo systemctl enable caddy
sudo systemctl start caddy

# 起動状況を確認
ss -lnt

# https 応答チェック
curl -k https://vault.sample.net/v1/sys/health

# httpが適切にリダイレクトされることを確認
curl -k http://vault.sample.net/v1/sys/health
curl --head http://vault.sample.net/v1/sys/health
curl -k -L http://vault.sample.net/v1/sys/health

最後に

マニュアルインストールの内容はほぼ公式ドキュメントのコピーです。
もし今後AmazonLinux2023用のインストール手順が追加されたら、そちらを参照してください。

Link

https://caddyserver.com/docs/running
https://github.com/caddyserver/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?