acme.sh

提供: ArchWiki
2022年7月6日 (水) 15:23時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎新しい証明書を発行: 不要箇所を削除)
ナビゲーションに移動 検索に移動

acme.sh シェルスクリプトだけで書かれた ACME クライアントです。ACME プロトコルを完全に実装しており、例えば IPv6 やワイルドカード証明書などをサポートしています。

インストール

acme.sh パッケージをインストールします。スタンドアロンモードを使用する場合は、socat をインストールします。

使用方法

このパッケージは man ページを提供しませんが、使い方は wiki に書いてあります。acme.sh --help を実行すると、コマンドとパラメータの長いリストが出力されます。

基本的には 3 つのステップがあります。

  1. 証明書の発行を依頼する。
  2. 発行された証明書をインストールし、使えるようにする。
  3. 証明書を長期的に維持する。

以下の例で説明します。

新しい証明書を発行

-d オプションで任意のドメインを指定することができます。
ヒント: acme.sh は2021年8月1日から ZeroSSL をデフォルト CA として使用しているため、LetsEncrypt をデフォルト CA として指定するとよいでしょう。

acme.sh スクリプトは、さまざまなモードをサポートしています。指定するモードとオプションの例は次のとおりです。

  • Webroot モード:
$ acme.sh --issue -d example.com -d www.example.com -d cp.example.com -d '*.example.com' -w /home/wwwroot/example.com
  • スタンドアロンモード。ウェブサーバーが動作していない場合は --standalone をつけてスタンドアロンモードにします:
$ acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com
  • Nginx モード:
$ acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com
  • DNS モード (詳しくは official wiki を参照してください):
$ acme.sh --issue -d example.com -d '*.example.com' --dns dns_he

プロジェクトの wiki には さらに多くの例が掲載されています。

Apache/Nginxなどに証明書をインストールする

Nginx:

$ acme.sh --install-cert -d example.com --key-file '/path/to/keyfile/in/nginx/example.key' --fullchain-file '/path/to/fullchain/nginx/example.cer' --reloadcmd "systemctl force-reload nginx"

Apache:

$ acme.sh --install-cert -d example.com --cert-file '/path/to/certfile/in/apache/example.cer' --key-file '/path/to/keyfile/in/apache/example.key' --fullchain-file '/path/to/fullchain/certfile/apache/example.fullchain.cer' --reloadcmd "systemctl force-reload nginx apache2"

証明書の維持

証明書は 60 日ごとに更新されます。acme.sh を定期的に実行するために、systemd timer を設定することができます。

参照

  • Project homepage and wiki for its documentation.
  • acme-tiny offers several related utilities, as well as additional general ACME documentation.
  • lacme is a small ACME client written with process isolation and minimal privileges in mind.