iDRACでLet's Encryptを使う


DELLのサーバに搭載されているiDRACは便利だが、デフォルトで自己署名証明書を利用するので、何かとブラウザの警告が気になる。

勿論、証明書自体を信頼(インポート)してしまえば良いのだが、

  • 他のデバイスから接続することを考えると何ら解決とは言えない
  • Cloudflare Accessでエンドポイントを保護しながらインターネット上に公開する際、Full (Strict)が使えない

などなど、痒い所に手が届かない。

今時、証明書自体簡単に発行出来るし、iDRAC自体も任意の証明書をインポート出来る

結論から書くと、以下のような感じで処理をすればよい。今回はDNS-01で行いたかったため、Cloudflareのプラグインを利用している。

# 証明書の発行
# HTTP-01だとWebサーバを公開しないといけなく、面倒なのでDNS-01を使用する
certbot certonly \
  --agree-tos \
  -m [email protected] \
  --rsa-key-size=4096 \
  --key-type rsa \
  --dns-cloudflare \
  --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
  --dns-cloudflare-propagation-seconds 60 \
  -d idrac.example.com

# 秘密鍵の登録
racadm -r [IP] -u [User] -p [Password] sslkeyupload -t 1 -f /etc/letsencrypt/live/idrac.example.com/privkey.pem

# 公開鍵の登録
racadm -r [IP] -u [User] -p [Password] sslcertupload -t 1 -f /etc/letsencrypt/live/idrac.example.com/fullchain.pem

# iDRACのリセット(再起動)
racadm -r [IP] -u [User] -p [Password] racreset

上記は全てArch Linux上にて行っていて、以下のパッケージで対応が出来る。

とりあえずこれを定期的に systemd-timer などで実行するようにすれば、いい感じになりそう。