無料のSSL。
Debian で試す。
本家: https://letsencrypt.org/howitworks/
解説: http://www.websec-room.com/2015/12/04/2380
Debian wheezy
rootで
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help
パッケージメモ
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libnet-daemon-perl libplrpc-perl
これを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
augeas-lenses binutils cpp cpp-4.7 gcc-4.7 libc-bin libc-dev-bin libc6
libc6-dev libexpat1 libexpat1-dev libffi5 libgmp10 libgomp1 libitm1 libmpc2
libmpfr4 libpython2.7 libquadmath0 libssl1.0.0 linux-libc-dev
python-pkg-resources python-setuptools python2.7-dev zlib1g-dev
提案パッケージ:
augeas-doc binutils-doc cpp-doc gcc-4.7-locales gcc-multilib make
manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc
gcc-4.7-multilib libmudflap0-4.7-dev gcc-4.7-doc libgcc1-dbg libgomp1-dbg
libitm1-dbg libquadmath0-dbg libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7
binutils-gold augeas-tools glibc-doc python-distribute python-distribute-doc
推奨パッケージ:
libssl-doc python-pip
以下のパッケージが新たにインストールされます:
augeas-lenses binutils cpp cpp-4.7 dialog gcc gcc-4.7 libaugeas0
libc-dev-bin libc6-dev libexpat1-dev libffi-dev libffi5 libgmp10 libgomp1
libitm1 libmpc2 libmpfr4 libpython2.7 libquadmath0 libssl-dev linux-libc-dev
python-dev python-pkg-resources python-setuptools python-virtualenv
python2.7-dev zlib1g-dev
以下のパッケージはアップグレードされます:
libc-bin libc6 libexpat1 libssl1.0.0
アップグレード: 4 個、新規インストール: 28 個、削除: 0 個、保留: 76 個。
C系とPython系の環境が勝手にインストールされる。
次のコマンド実行。
./letsencrypt-auto --apache
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt --apache
The apache plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('Unable to parse runtime variables',)
Debianでもダメじゃん。jessieならいけたのかな。
まあbetaだから仕方ないのか。
https://github.com/letsencrypt/letsencrypt/issues/1208
現在進行形で議論がある。
manualモードで起動して、表示されたコマンドを別コンソールから実行する。
mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
cd /tmp/letsencrypt/public_html
...
一旦Apacheを止めてPythonの簡易サーバーを立ち上げたら、Enterを押してcontinue
/etc/letsencrypt/live/
に証明書一式が出来た模様。
あとはVirtualHost *:80をコピーして *:443 にして(継承とかないのかな)
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mydomain/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mydomain/chain.pem
これを書くだけ。
個人用サーバーがSSL化できた。期間は3ヶ月。
新しいサイトを作るときのテストサーバーにちょうど良い感じがする。
SSLのテストって証明書のせいで省略しちゃうことあるし、ここまで簡単だとテストで悩むよりさくっと設定する方が早そう。
Debian jessie
(追記)
気になったので Debian jessie でも試した。
元々は ApacheとPHPとPostgreSQLしか入っていないサーバー。
バーチャルホストも一つしかないテストサーバーで、多少ファイルが書き換えられても戻せるので自動でやってみる。
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
ca-certificates はすでに最新版です。
ca-certificates は手動でインストールしたと設定されました。
git はすでに最新版です。
python はすでに最新版です。
以下の追加パッケージがインストールされます:
augeas-lenses binutils cpp cpp-4.9 dh-python gcc-4.9 libasan1 libatomic1
libc-dev-bin libc6-dev libcilkrts5 libcloog-isl4 libexpat1-dev
libgcc-4.9-dev libgomp1 libisl10 libitm1 liblsan0 libmpc3 libmpdec2 libmpfr4
libpython-dev libpython2.7 libpython2.7-dev libpython3-stdlib
libpython3.4-minimal libpython3.4-stdlib libquadmath0 libssl1.0.0 libtsan0
libubsan0 linux-libc-dev python-chardet-whl python-colorama-whl
python-distlib-whl python-html5lib-whl python-pip-whl python-requests-whl
python-setuptools-whl python-six-whl python-urllib3-whl python2.7-dev
python3 python3-minimal python3-pkg-resources python3-virtualenv python3.4
python3.4-minimal zlib1g-dev
提案パッケージ:
augeas-doc binutils-doc cpp-doc gcc-4.9-locales gcc-multilib make
manpages-dev autoconf automake libtool flex bison gdb gcc-doc
gcc-4.9-multilib gcc-4.9-doc libgcc1-dbg libgomp1-dbg libitm1-dbg
libatomic1-dbg libasan1-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
libcilkrts5-dbg libquadmath0-dbg augeas-tools glibc-doc python3-doc
python3-tk python3-venv python3-setuptools python3.4-venv python3.4-doc
binfmt-support
推奨パッケージ:
libssl-doc
以下のパッケージが新たにインストールされます:
augeas-lenses binutils cpp cpp-4.9 dh-python dialog gcc gcc-4.9 libasan1
libatomic1 libaugeas0 libc-dev-bin libc6-dev libcilkrts5 libcloog-isl4
libexpat1-dev libffi-dev libgcc-4.9-dev libgomp1 libisl10 libitm1 liblsan0
libmpc3 libmpdec2 libmpfr4 libpython-dev libpython2.7 libpython2.7-dev
libpython3-stdlib libpython3.4-minimal libpython3.4-stdlib libquadmath0
libssl-dev libtsan0 libubsan0 linux-libc-dev python-chardet-whl
python-colorama-whl python-dev python-distlib-whl python-html5lib-whl
python-pip-whl python-requests-whl python-setuptools-whl python-six-whl
python-urllib3-whl python-virtualenv python2.7-dev python3 python3-minimal
python3-pkg-resources python3-virtualenv python3.4 python3.4-minimal
virtualenv zlib1g-dev
以下のパッケージはアップグレードされます:
libssl1.0.0
アップグレード: 1 個、新規インストール: 56 個、削除: 0 個、保留: 2 個。
新規 56 個……。
./letsencrypt-auto --apache
SSL化するバーチャルホスト選択画面が出た。
続いて SSLのみにするかの選択
そしてSSLテスト用のリンクを提示される。
https://www.ssllabs.com/ssltest/index.html
( https://www.ssllabs.com/ssltest/analyze.html?d=domain )
BASIC認証をかけてたんだけども、問題無し。
その設定ごと丸々SSL用にコピーされていた。
ここまで自動化されてたらいいね。3ヶ月後の更新も楽々できそう。