acme.sh
acme.sh シェルスクリプトだけで書かれた ACME クライアントです。ACME プロトコルを完全に実装しており、例えば IPv6 やワイルドカード証明書などをサポートしています。
インストール
acme.sh パッケージをインストールします。スタンドアロンモードを使用する場合は、socat をインストールします。
使用方法
このパッケージは man ページを提供しませんが、使い方は wiki に書いてあります。acme.sh --help
を実行すると、コマンドとパラメータの長いリストが出力されます。
基本的には 3 つのステップがあります。
- 証明書の発行を依頼する。
- 発行された証明書をインストールし、使えるようにする。
- 証明書を長期的に維持する。
以下の例で説明します。
新しい証明書を発行
-d
オプションで任意のドメインを指定することができます。
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 と wiki があります。
- acme-tiny はいくつかの関連するユーティリティと、その他の一般的な ACME ドキュメントを提供します。
- lacme は小さな ACME クライアントで、プロセスの分離と最小限の特権を念頭に置いて書かれています。