2015年夏頃、Internet Security Research Group (ISRG)は、無償かつ難しい手続きを自動化した Let’s Encrypt という新しいSSL証明局(CA:certificate authority)のサービスを開始するとのこと。
スポンサーには、mozilla、Akamai Technologies、Cisco Systems、EFFなどが名を連ねている。
また、以下の6つの原則を掲げている。
- Free:ドメイン名を所有している誰もが無償で信頼された証明書を取得し使用できる。
- Automatic: Webサーバー上のソフトウェアは、安全かつ難解な作業を伴わず構成できる。
- Secure:最善のセキュリティを推進するためのプラットフォームとして機能する。
- Transparent:発行または失効したすべての証明書は、公的に記録して検査可能とする。
- Open:自動発行·更新プロトコルは、すべての人が採用できるようオープンな規格として公開する。
- Cooperative:いずれかの組織の枠を超え、地域社会の利益のために努力する。
How It Worksのページによると、Linux系サーバでは以下のレベルでツールの導入とSSL証明書の設定が完了するとのこと。
これまで、費用面や設定作業面などが理由で、SSL導入に見送ってきた方には朗報ではないかと存じます。
$ sudo apt-get install lets-encrypt $ lets-encrypt example.com
現時点では、apt-get ではインストールできませんが、Github にプレビュー版がアップされているので、少し確認をしてみました。
python, python-devel, gcc などが導入されている、ubuntu や debian などの Linux 環境であればインストールは可能と思います。
※これは開発者向けプレビューです。テスト用の証明書がインストールされるので、運用中のサーバでは絶対に実行しないでください。
# wget https://github.com/letsencrypt/lets-encrypt-preview/archive/master.zip # unzip master.zip # cd lets-encrypt-preview-master # python ./setup.py install <途中省略> Finished processing dependencies for letsencrypt==0.1
現段階では、/usr/local/bin/letsencrypt をオプションなしで実行すると対話モードとなります。

letsencryptのヘルプを表示した結果です。
# /usr/local/bin/letsencrypt --help
usage: letsencrypt [-h] [-d DOMAIN [DOMAIN ...]] [-s SERVER]
[-a AUTHENTICATOR] [-k AUTHKEY] [-B N] [-R]
[--revoke-certificate REV_CERT] [--revoke-key REV_KEY]
[-b N] [-v] [-r] [--no-confirm] [-e] [-t]
[--config-dir CONFIG_DIR] [--work-dir WORK_DIR]
[--backup-dir BACKUP_DIR] [--key-dir KEY_DIR]
[--cert-dir CERT_DIR] [--le-vhost-ext LE_VHOST_EXT]
[--cert-path CERT_PATH] [--chain-path CHAIN_PATH]
[--apache-server-root APACHE_SERVER_ROOT]
[--apache-mod-ssl-conf APACHE_MOD_SSL_CONF]
[--apache-ctl APACHE_CTL] [--apache-enmod APACHE_ENMOD]
[--apache-init-script APACHE_INIT_SCRIPT]
[-c FILE [FILE ...]] [--export-conf-file [FILE]]
letsencrypt client 0.1
optional arguments:
-h, --help show this help message and exit
-d DOMAIN [DOMAIN ...], --domains DOMAIN [DOMAIN ...]
-s SERVER, --server SERVER
CA hostname (and optionally :port). The server
certificate must be trusted in order to avoid further
modifications to the client.
-a AUTHENTICATOR, --authenticator AUTHENTICATOR
Authenticator to use for responding to challenges.
-k AUTHKEY, --authkey AUTHKEY
Path to the authorized key file
-B N, --rsa-key-size N
Size of the RSA key.
-R, --revoke Revoke a certificate from a menu.
--revoke-certificate REV_CERT
Revoke a specific certificate.
--revoke-key REV_KEY Revoke all certs generated by the provided authorized
key.
-b N, --rollback N Revert configuration N number of checkpoints.
-v, --view-config-changes
View checkpoints and associated configuration changes.
-r, --redirect Automatically redirect all HTTP traffic to HTTPS for
the newly authenticated vhost.
--no-confirm Turn off confirmation screens, currently used for
--revoke
-e, --agree-tos Skip the end user license agreement screen.
-t, --text Use the text output instead of the curses UI.
--config-dir CONFIG_DIR
Configuration directory.
--work-dir WORK_DIR Working directory.
--backup-dir BACKUP_DIR
Configuration backups directory.
--key-dir KEY_DIR Keys storage.
--cert-dir CERT_DIR Certificates storage.
--le-vhost-ext LE_VHOST_EXT
SSL vhost configuration extension.
--cert-path CERT_PATH
Let's Encrypt certificate file.
--chain-path CHAIN_PATH
Let's Encrypt chain file.
--apache-server-root APACHE_SERVER_ROOT
Apache server root directory.
--apache-mod-ssl-conf APACHE_MOD_SSL_CONF
Contains standard Apache SSL directives.
--apache-ctl APACHE_CTL
Path to the 'apache2ctl' binary, used for 'configtest'
and retrieving Apache2 version number.
--apache-enmod APACHE_ENMOD
Path to the Apache 'a2enmod' binary.
--apache-init-script APACHE_INIT_SCRIPT
Path to the Apache init script (used for server
reload/restart).
configuration file options:
-c FILE [FILE ...], --conf-file FILE [FILE ...]
specify config files
--export-conf-file [FILE]
translate arguments into a config file
結構オプションが多いので、本当に簡単(?)と疑問が沸いてしまいました。
正式公開した際は、再度確認してみたいと思います。

