Proxmox Backup Server の SSL/TLS 証明書を Let’s Encrypt にする

Proxmox VE も同じくだけど、自前の認証局だから「信頼されていない」サイトとしてメッセージが表示される。
無視してアクセスすると URL のところに赤文字警告が表示されたまま。
運用上の問題は無いけれど気持ちが悪いから Let’s Encrypt の証明書に変更した。

手順は下のサイトのとおり。これまでLet’s Encrypt といえば certbot を使っていたけど、PBS は wiki によると acme.sh を使うらしい。
基本的に説明のとおりで問題なく変更できた。

目次

事前準備

Let’s Encrypt で証明書を発行する場合、外部から port 80 に接続できる必要がある。証明書の発行だけだから port 443 には接続できなくても良い。
自分の環境だと、リバースプロキシの設定で pbs.example.com とかに接続できるよう設定ファイルを追加した。

server {
    server_name pbs.example.com;
    listen 80;
    client_max_body_size 0;
    location / {
        proxy_set_header    Host    $host;
        proxy_set_header    X-Real-IP    $remote_addr;
        proxy_set_header    X-Forwarded-Host       $host;
        proxy_set_header    X-Forwarded-Server    $host;
        proxy_set_header    X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_pass    http://192.168.1.x;
    }
}

あと、予め MyDNS にも A レコードを追加しておくこと。

ダウンロードとインストール

PBS には入っていないから、まずは git と socat をインストールする。ssh で PBS に root ログインしてターミナルから、

# apt install git socat

続いて「 ~/ 」に acme.sh をダウンロードしてインストールする。
メールアドレスは正規のものを。間違っても hoge@example.com 等としないように。

# cd ~
# git clone https://github.com/acmesh-official/acme.sh.git
# cd acme.sh && ./acme.sh --install --accountemail hoge@example.com

証明書の発行

Wiki のとおりスクリプトを作って実行する。chmod で実行権の付与を忘れずに。
もちろんターミナルから直接実行しても良い。
ドメインやスクリプト名は例示。

# cd ~
# vi ./install-acem.sh

#!/usr/bin/bash
/root/acme.sh/acme.sh --issue -d pbs.example.com --standalone \
--cert-file /etc/proxmox-backup/proxy.pem \
--key-file /etc/proxmox-backup/proxy.key \
--fullchain-file /etc/proxmox-backup/proxy.pem \
--reloadcmd "chown root:backup /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key; chmod 640 /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key ; systemctl reload proxmox-backup-proxy"

作成したスクリプトを実行する。
メッセージの最後に Reload success と表示されれば多分、大丈夫。

# ./install-acme.sh

〜〜
[Sat 06 Mar 2021 05:55:46 PM JST] Run reload cmd: chown root:backup /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key; chmod 640 /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key ; systemctl reload proxmox-backup-proxy
[Sat 06 Mar 2021 05:55:47 PM JST] Reload success

自動更新の登録

更新チェックのタイミングはお好きなように。

# crontab -e

20 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"  --renew-hook "chown root:backup /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key; chmod 640 /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key ; systemctl reload proxmox-backup-proxy" > /dev/null

Proxmox VE 側の作業

管理画面のデータセンターのストレージから、追加したストレージの編集で Fingerprint を更新する。


PVE の証明書も変更したから、後でメモを残しておこう。

コメント

コメントする

目次
閉じる