本サイトは さくらのウェブアクセサレータ + 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$//')\" }}"