はじめに
1年間の無料証明書は現在ほぼ絶滅しているため、最も時間と労力を節約できる方法は、acme.shによる自動デプロイと更新です。現在、私のほとんどのサービスはサーバーレスシステム上で稼働していますが、自動プログラムを通じていつでも有効なウェブサイト証明書を取得できるようにするのは、やはり一定の必要性があります。 私のようにCloudflareのサービスを全面的に利用している場合、Cloudflareのダッシュボードで有効期限15年の自己署名証明書を生成できます。CloudflareシステムのHTTPS検証を通過できるため、パブリックCA証明書をデプロイする必要はありません。パブリックCA証明書システムが自動的に申請を支援し、現在のプロバイダーはGTSとSectigoです。 以下、申請過程でのいくつかの手順と注意点を簡単に記録します。 ACME
インストールと設定
acme.shのインストール
クイック起動用のエイリアス設定
インストール成功のテスト
バージョンが正常に返されればインストール成功です
デフォルトの申請メールアドレスの設定
[email protected] を設定したいメールアドレスに置き換えてください。設定完了後、以降の証明書申請ではデフォルトでこのメールアドレスが使用されます。
証明書申請機関の選択
公式ドキュメントによると、現在acmeは5つのSSL証明書発行機関をサポートしています。それぞれ:
- ~ZeroSSL.com CA~(デフォルト)
- マルチドメイン&ワイルドカードドメイン対応、有効期間90日
- 上位CA:Sectigo(USERTrust ECC Certification Authority)
- Letsencrypt.org CA
- マルチドメイン&ワイルドカードドメイン対応、有効期間90日
- 上位CA:ISRG(ISRG Root X1)
- ~BuyPass.com CA~
- マルチドメイン対応(1証明書につき最大5個)、有効期間180日
- 上位CA:Buypass(Buypass Class 3 Root CA)
- ~SSL.com CA~
- シングルドメインのみ対応、登録が必要、有効期間90日
- 上位CA:SSL.com(SSL.com Root Certification Authority RSA R2)
- ~Google.com Public CA~
- マルチドメイン&ワイルドカードドメイン対応、有効期間90日
- 上位CA:GTS(GTS Root R4) 以上を踏まえ、デフォルトのZeroSSL/Let's Encrypt/GTSを選択することをお勧めします。自動更新があり、マルチドメイン&ワイルドカードドメインに対応しているため、一度申請すれば安心です。
証明書機関の切り替え
—serverの後には切り替え先の機関を指定します。選択肢は以下の通りです:
- zerossl/letsencrypt/buypass/google/ssl.com
以下の申請手順はZeroSSLを例とし、Cloudflare DNS APIを使用します。
Cloudflare DNS APIの設定
APIキーの取得手順: 1.Cloudflare Dashboardにログインします。 2.My Profileに移動します。 3.API Tokensの下で、DNS編集権限を持つAPIトークンを作成するか、Global API Keyを使用します。 以下のコードに記入し、ターミナルで実行します。
同時に複数のDNSサービスプロバイダーもサポートしています。詳細はGithubを参照してください。
証明書の申請
examle.comおよび*.example.comの2つのドメインの証明書を申請します。必要に応じて自行修改し、ドメインを追加する場合は後ろに-d ドメインを続けて追加します。
証明書機関を指定する場合は、—serverオプションを追加します。
証明書のインストール
自分のウェブサーバーのバージョンに応じて対応するコードを選択してインストールします。以下はApacheを例とします:
上記のドメインとパスは手動で変更してください。パスは前のステップで証明書の申請が完了した後にフィードバックされます。
定期更新の設定
以降は証明書の更新が自動的に完了し、人の介入は不要になります。
以上が、acme.shで証明書を申請・設定する全プロセスです。最終効果の参考画像を添付します。

最終効果