この2か月間、Tencent Cloud CDNは未払いですぐにサービスを一時停止できないため、多吉雲CDNに切り替えました。

でも!
現在、宝塔/1Panelの無料SSL証明書はすべて90日間の有効期間のみで、自動更新は可能ですが、更新後もCDNの証明書を頻繁に手動で更新する必要があり、非常に面倒です。
幸い多吉雲には対応するAPIが用意されているため、スクリプトでSSL証明書を多吉雲CDNに自動的に同期できます。

機能
- 🔑 多吉雲APIアクセストークンを動的に生成
- 📤 ワンクリック証明書アップロード&管理
- 🌐 複数ドメインへのスマート証明書バインド
- 🗑️ 古い証明書のクリーンアップ機能(オプション)
- ⏰ Let's Encrypt自動更新とのシームレス連携
- ✅ 2プラットフォーム対応(宝塔/1Panel)
クイックスタート
- 多吉雲APIキーを取得:
- 多吉雲コンソールにログイン
- 「ユーザーセンター」→「キー管理」へ進む
- 新しいキーペアを作成
- 証明書パスを確認:
- 宝塔パネル:
/www/server/panel/vhost/ssl/ドメイン名ディレクトリ/ - 1Panelはスキップ可
- 宝塔パネル:
設定ガイド
スクリプト内の以下のパラメータを編集:
デプロイガイド
1Panel
- 証明書管理画面へ進む
証明書を作成/編集:
- 「自動更新」を有効化
- 「証明書をローカルディレクトリにプッシュ」を有効化
- ディレクトリを選択
- 「申請後にスクリプトを実行」を有効化
- 本スクリプト内容を貼り付け
- 証明書パスを以下に変更:
CodeBlock Loading...

1Panel 証明書設定
宝塔
- 定期タスクを作成:
- タスクタイプ:Shellスクリプト
- タスク名:任意
- 実行周期:毎月1日 01:30に実行
- 実行ユーザー:root
- スクリプト内容:本スクリプト内容を貼り付け

宝塔定期タスク
- Let's Encrypt証明書自動更新の定期タスク
/www/server/panel/pyenv/bin/python /www/server/panel/class/acme_v2.py –renew=1と組み合わせることで、理論上多吉雲CDNの証明書を放置運用できます。
保存後、一度タスクを実行すると、以下のメッセージが表示されれば証明書の同期が完了しています:
コードの考え方
キー取得 & AccessToken 生成
多吉雲のAPIには認証メカニズムがあり、使用する前にコンソールのキー管理で AccessKey と SecretKey を取得し、AccessKey と SecretKey から AccessToken を生成する必要があります。
AccessToken の生成手順は、リクエストURLとリクエストボディを連結したものを SecretKey で HMAC-SHA1 暗号化し、得られた暗号値と AccessKey をコロンで連結します。詳細な生成アルゴリズムはドキュメント認証メカニズムを参照してください。
AccessToken を生成したら、リクエストヘッダに Authorization: TOKEN <AccessToken> を付けるだけで認証を通過できます。
宝塔のドメイン証明書を見つけてアップロード
/www/server/panel/vhost/ssl/ ディレクトリの下に、宝塔のすべてのドメイン名フォルダが存在し、フォルダ内にはそのドメインに対応するフル証明書チェーン fullchain.pem と秘密鍵 privkey.pem が含まれています。
ここでは、ドメインとそのすべてのサブドメインに同じワイルドカード証明書を使用することを推奨し、一度の操作でドメインとすべてのサブドメインの証明書同期を実現できます。
ドメイン vinking.top を例にとると、フル証明書チェーンファイルと秘密鍵ファイルのディレクトリは以下のようになります:
ドメイン証明書を取得したら、POST で https://api.dogecloud.com/cdn/cert/upload.json に証明書内容を送信する必要があります。アップロード成功後、証明書IDを取得し、先ほどアップロードした証明書をドメインにバインドします。
参考ドキュメント 証明書アップロード 、 証明書バインド 。