前提条件: まず、ドメイン名とパブリック IP を持つサーバーが必要です。
次に、IPV4 アドレスを指すようにドメイン名に A を追加する必要があります。そうしないと、証明書の生成時にドメイン名を解決できません。
acme.sh をインストールする
カール https://get.acme.sh | sh -s [email protected]
エイリアスを有効にする
source ~/.bashrc
説明します:
acme.sh は ~/.acme.sh ディレクトリにインストールされます。インストールが正常に完了した後に実行して、 source ~/.bashrc
スクリプトによって設定されたコマンド エイリアスが確実に有効になるようにします。
注: 一般ユーザーとルート ユーザーの両方がインストールして使用できます。インストール プロセスには次の手順があります。
1. acme.sh を ホーム ディレクトリ ( ~/.acme.sh/ ) にインストールし、便利なように .bashrc などのシェル エイリアスを作成します。 alias acme.sh=~/.acme.sh/acme.sh
2. cron ジョブを自動的に作成し、毎日 0:00 にすべての証明書を自動的に検出します. 有効期限が近づいていて更新が必要な場合、証明書は自動的に更新されます.
3. インストール時にメールアドレスを忘れずに持っていく 後で証明書を申請する際にエラーが報告される場合があるので、エラーが報告された場合は acme.sh をアンインストールし、再インストールしてください。
ヘルプ情報を表示する
acme.sh -h
acme.sh のアンインストール
acme.sh --アンインストール
CA 組織の切り替え
acme.sh --set-default-ca --server letsencrypt
説明します:
acme.sh は、Let's Encrypt、Buypass、ZeroSSL、SSL.com という 4 つの公式環境 CA をサポートしており、ZeroSSL がデフォルトで使用されます。
証明書を生成する
acme.sh --issue -d example.com --standalone --keylength ec-256 --force
説明します:
1. --standalone モードでは、デフォルトでポート 80 が使用されます。ポート 80 が使用されている場合は、--httpport パラメータを追加して、80 以外のポートを使用します。
ec-256
2. --keylength は鍵の長さを示し、次の値は, , ec-384
, 2048
, 3072
,のいずれかになります。 4096
これ8192
は ec
ECC 証明書が生成されることを意味し、それがない場合は RSA 証明書が生成されることを意味します。セキュリティに関しては、256 ビットの ECC 証明書は 3072 ビットの RSA 証明書と同等です。
3. 生成された証明書は ~/.acme.sh/example.com/ ディレクトリに配置されます。
example.com.cer | 証明書ファイル |
example.com.key | 秘密鍵 |
空として | 中間証明書 |
fullchain.cer | 証明書チェーン |
4. 現在の証明書の残りの有効期間が 30 日を超えている場合に証明書を再生成するには、 --force パラメータを使用する必要があります
5. 証明書の生成時にテスト環境を使用してテストするには、 --staging を追加することをお勧めします. わからない場合は、以下のレート制限を参照してください.
証明書を更新する
acme.sh --renew -d example.com
ecc 証明書の場合:
acme.sh --renew -d example.com --ecc
説明します:
デフォルトでは、acme.sh は有効期限が近づいている証明書を自動的に更新します。手動で更新する必要はありません。
30 日を超える有効期間を更新する場合は、 --force パラメータを使用します
証明書を展開する
acme.sh --installcert -d mydomain.me --ecc \
--fullchain-file /demo/v2ray/demo.crt \
--key-file /etc/demo/demo.key
説明します:
実際には、指定された場所に証明書をコピーすることであり、場所は自分で決定し、元の生成された証明書のディレクトリは acme.sh によって内部的に使用されます。
生成された証明書を表示します。
acme.sh --list
デバッグを表示:
acme.sh --issue ..... --debug
エラーを表示:
acme.sh --issue ..... --debug 2
ビルドログ:
acme.sh --issue ..... --log
テスト環境を利用する
- 演出
説明します:
ログ ファイルのパスは次のとおりです。 ~/.acme.sh/acme.sh.log
レート制限
重複証明書の制限
概要:
すべての発行リクエストには、1 週間あたり 5 つの複製証明書の制限が適用されます。重複する証明書の制限を超えると、ACME クライアントから次のようなエラー メッセージが表示されます。
過去 168 時間にこの正確な一連のドメインに対して既に発行された証明書が多すぎます (5)
: example.com login.example.com: https://letsencrypt.org/docs/duplicate-certificate-limit を参照してください
このエラーが参照している「正確なセット」は、この証明書に要求されたホスト名のセットです。この例ではexample.com
、 login.example.com
. 証明書が 1 つの名前 (例: example.com) に対してのみ発行された場合、証明書のホスト名の「正確なセット」は [example.com]
. サブスクライバーが同じ「正確なセット」のホスト名の証明書を 1 週間以内に 5 回以上要求すると、このレート制限を超えます。
解決:
以前に発行された証明書を取り消しても、重複する証明書の制限はリセットされません。ただし、この状況は依然として存在します。上限を超えており、同じホスト名に対して別の証明書が必要な場合は、別の「正確なセット」のホスト名に対していつでも証明書を要求できます。たとえば、 [example.com]
の重複証明書の制限を超えた場合、 [example.com, login.example.com]
証明書の要求は成功します。同様に、 [example.com, login.example.com]
重複証明書の制限を超えた場合は、 別の証明書[example.com]
の申請 [login.example.com]
が成功します。
失敗した認証の制限
概要:
すべての発行リクエストには、アカウントごと、ホスト名ごと、 1 時間あたり 5 回の認証失敗制限が適用されます。 そして、免除はありません。失敗した認証の制限を超えると、ACME クライアントから次のエラー メッセージが表示されます。
最近認証の失敗が多すぎる: https://letsencrypt.org/docs/failed-validation-limit/ を参照
このエラーが指す「承認」は、証明書を発行または更新する前に、ドメイン名の制御を確認するために ACME クライアントから送信された承認要求の結果です。このエラーは、複数の認証要求が正常に送信されたが、すべての認証試行が失敗したことを示しています。
テスト環境のレート制限
テスト環境では、本番環境と同様のレート制限を使用していますが、特定のデータが変更されています。
- 登録ドメイン名ごとに発行できる証明書の数は、週に 30,000 に制限されています。
- 証明書の複製は、 1 週間あたり 30,000 に制限されています。
- 1 時間あたり60 回の認証失敗が許可されます。
- IP アドレスごとの登録アカウント数は、 IP ごとに 3 時間あたり 50 アカウントに制限されています。
- ACME v2 の場合、新しい注文制限はアカウントあたり 3 時間ごとに 1500 です。
Let's Encrypt公式サイト:
Let's Encrypt - 無料の SSL/TLS 証明書 (letsencrypt.org)
acme.sh プロジェクトのアドレス:
acmesh-official/acme.sh: ACME クライアント プロトコルを実装する純粋な Unix シェル スクリプト (github.com)