本サイトは さくらのウェブアクセサレータ + Amazon Lightsail 構成。
SSL証明書の更新を忘れがちなので、API経由で更新できるか試してみた。
さくらウェブアクセラレータで使うドメインのSSL証明書更新を参考にしている。
Let’s Encryptで証明書取得した後の設定について記載する。
APIキーの取得
API管理ページから、APIキーを作成する。
IDの取得
# curl -s -X GET --user "アクセストークン":"トークンシークレット" https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site | jq { "Total": 1, "From": 0, "Count": 1, "CountLimit": 20, "Sites": [ { "Index": 0, "ID": "xxxxxxxxxxxx", "Name": "tech.akat.info", "Domain": "tech.akat.info", "DomainType": "own_domain", "Subdomain": "6g89bvml.user.webaccel.jp", "ASCIIDomain": "tech.akat.info", "OriginProtocol": "https", "RequestProtocol": "2", "Origin": "x.x.x.x", "HostHeader": "tech.akat.info", "Status": "enabled", "OriginGuardToken": "", "NextOriginGuardToken": "", "DefaultCacheTTL": -1, "CreatedAt": "2019-03-25T03:15:42+09:00", "HasCertificate": true, "HasOldCertificate": true, "GibSentInLastWeek": 0, "CertValidNotBefore": "1584723561000", "CertValidNotAfter": "1592499561000" } ], "is_ok": true }
証明書を登録する
# curl -s -X PUT --user "アクセストークン":"トークンシークレット" https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/xxxxxxxxxxxx/certificate -d "{\"Certificate\": { \"CertificateChain\": \"$(perl -pe 's/\n/\\n/' /etc/letsencrypt/live/tech.akat.info/fullchain.pem | perl -pe 's/\\n$//')\", \"Key\": \"$(perl -pe 's/\n/\\n/' /etc/letsencrypt/live/tech.akat.info/privkey.pem | perl -pe 's/\\n$//')\" }}"