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 の証明書も変更したから、後でメモを残しておこう。
コメント