2015年夏 無料のSSL証明書が配布される

2015年夏頃、Internet Security Research Group (ISRG)は、無償かつ難しい手続きを自動化した Let’s Encrypt という新しいSSL証明局(CA:certificate authority)のサービスを開始するとのこと。

LetsEncrypt
https://letsencrypt.org/

スポンサーには、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
 

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

結構オプションが多いので、本当に簡単(?)と疑問が沸いてしまいました。
正式公開した際は、再度確認してみたいと思います。