acme.sh を介して HTTPS 証明書を生成します。

acme.shとは何ですか?

acme.sh は、HTTPS 証明書の生成と管理を自動化するために使用されるオープンソースのシェル スクリプトです。

インストールする

curl https://get.acme.sh | sh -s [email protected]

インストール後、ホーム ディレクトリに acme.sh が表示されます。

~/.acme.sh

以下のコマンドを実行して、acme.shの環境変数を有効にします。

source ~/.basrc

証明書を生成する

証明書を生成する前に、acme.sh はドメイン名の所有権を確認する必要があります。次のようないくつかの検証モードがあります。

HTTPの検証

Apache

Apache サーバーを使用している場合。

acme.sh --issue -d mydomain.com --apache

Nginxサーバー

nginxサーバーを使用している場合。

acme.sh --issue -d mydomain.com --nginx

Web サイトのルート ディレクトリにファイルを追加します。

また、acme.sh に Web サイトのルート ディレクトリを指定すると、acme.sh が検証用のファイルを自動的に追加します。

acme.sh --issue -d mydomain.com --webroot /path-to-the-webroot-of-the-site

DNSの検証

手動でレコードを追加する

コマンドを実行する

acme.sh --issue --dns -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

それから、アクメ.sh 対応する解析レコードを生成して表示します。この TXT レコードをドメイン管理パネルに追加するだけです。

その後、証明書を再生成してください

acme.sh --renew -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

DNS サービス プロバイダー API を通じて確認します。

これは最も一般的に使用され、推奨される検証モードです。 CloudFlareを例に挙げると、以下を参照してください。https://github.com/acmesh-official/acme.sh/wiki/dnsapi 他のサービスプロバイダーからの証明書を適用するため。

APIを申請します。

CloudflareのプロフィールページからグローバルAPIキーを取得できます。APIトークンセクション。グローバル API キーの横にある「表示」をクリックし、Cloudflare パスワードを確認すると、パスワードが表示されます。これは 32 文字の 16 進文字列であり、環境変数を設定して acme.sh に指定する必要があります。CF_Key その価値に。も設定する必要がありますCF_Email Cloudflare アカウントに関連付けられている電子メール アドレスに送信します。これは、Cloudflareにログインするときに入力するメールアドレスです。例えば:

export CF_Key="763eac4f1bcebd8b5c95e9fc50d010b4"
export CF_Email="[email protected]"

証明書を生成します。

acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'

証明書ファイルを表示する

証明書が生成されたら、~/.acme.sh/mydomain.com_ecc にアクセスして証明書ファイルを表示できます。fullchain.cerは証明書ファイルですmydomain.io.key 秘密鍵ファイルです。どちらも、サイト構成プロセス中に i18n.so にアップロードできるテキスト ファイルです。

acme.sh 使用時の一般的な問題

CA

acme.sh は CA としてデフォルトで ZeroSSL を使用するようになりましたが、アクセシビリティの問題が頻繁に発生します。次のコマンドを使用して、CA を Let's Encrypt に切り替えることができます。

acme.sh --set-default-ca --server letsencrypt

ワイルドカード ドメイン証明書を生成します。

適用される証明書を申請したい場合を想定していますexample.com*.example.comでは、次のコマンドを使用してワイルドカード ドメイン証明書を生成できます。

acme.sh -d example.com -d *.example.com

証明書の更新

acme.sh は証明書を生成した後、証明書を定期的に更新するための crontab スケジュールされたタスクを追加します。次のコマンドを使用してスケジュールされたタスクを表示できます。更新された内容も次の場所に保存されます。~/.acme.sh/mydomain.com_ecc

crontab -e