前提

  • ホスト名: pve0.example.com
  • CloudFlare DNSで管理している
  • IPアドレス: 10.0.1.100/24

手順

  1. CloudFlareダッシュボードでの準備 (参考: https://github.com/acmesh-official/acme.sh/wiki/dnsapi#1-cloudflare-option)
    1. API Tokenの発行
      1. CloudFlareのダッシュボードを開き、右上の人間マーク -> My Profile
      2. API Tokens
      3. Create Token
      4. Edit zone DNSUse templateを選択
      5. Zone Resourcesに適用するzoneを選択する
      6. Continue to summaryを選択し、表示されたTokenをメモしておく。
    2. Account IDの確認
      1. Websitesからドメインを選択し、Account IDをメモしておく。
  2. Proxmox VEでの操作 (参考: https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysadmin_certificate_management)
    1. Datacenter -> ACME
      1. Accoounts -> Add
        1. Account Nameは任意の文字列を入れる。
        2. E-Mailを入力する。
        3. ACME DirectoryLet's Encrypt V2を選択する。
        4. TOSに同意するならAccept TOSにチェックを入れる。
      2. Challenge Plugins -> Add
        1. Plugin IDには任意の文字列を入れる。ここではplugin_id_cloudflare_managed_dnsとする。
        2. DNS APIでCloudflare Managed DNSを選択する。
        3. CF_Tokenにさっき発行したTokenを入れ、CF_Account_IDに同じくさっき確認したAccount IDを入れる。
    2. 証明書の発行と適用
      1. pvenode config set -acmedomain0 pve0.example.com,plugin=plugin_id_cloudflare_managed_dns
      2. pvenode acme cert order