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