HTTPSなサイトを作るためには普通はSSL証明書を購入するか、オレオレ証明書を作成する必要があるが、コストやブラウザに警告が表示されるなど悩ましい。
そこで現在はクローズドベータ中ですが無償で利用できるSSL証明書発行サービスLet'sEncryptを試してみることにします。(ちなみに2015年12月3日にはパブリックベータとなるようです。)
自分メモに近いので、読みにくい個所はご容赦を。
##ベータプログラムに参加
https://community.letsencrypt.org/t/beta-program-announcements/1631
にアクセスして「join the Beta,sign up here」をクリックします。
ベータプログラム参加のための登録フォームが表示されるので、必要な項目を入力します。
1. 証明書を取得したいドメイン名
2. 連絡先メールアドレス。
送信すると数日(?)でアナウンスのメールが届きますので、それにしたがって設定を行います。
##設定
###検証環境
・CentOS7
1.準備
必要なパッケージをインストールします。
#webサーバ環境
yum install httpd mod_ssl openssl
#git
yum install git
httpdの必要な設定等は割愛(80番ポートはあけておき、httpdのサービスはストップしておく)
- Let’Encrypt
$ sudo git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ sudo ./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory auth
※-d(サーバ名)のオプションをつけてもOK
上記コマンドを実行すると必要なライブラリなどを自動的にインストールしてくれる。
画面がブルーバックに切り替わり
・Emailアドレスの入力
・サーバ名の入力
・使用許諾の確認
などが表示されるので、そのまま答えていく。
最後にこのようなメッセージが表示されれば完了。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/test.hogehoge.com/fullchain.pem. Your cert
will expire on 2016-02-22. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
メッセージにあるように
「/etc/letsencrypt/live」ディレクトリ内に以下のファイルが生成される。
#サーバ証明書+中間証明書
/etc/letsencrypt/live/test.hogehoge.com/fullchain.pem
#サーバ証明書
/etc/letsencrypt/live/test.hogehoge.com/cert.pem
#中間証明書
/etc/letsencrypt/live/test.hogehoge.com/chain.pem
#サーバ秘密鍵
/etc/letsencrypt/live/test.hogehoge.com/privkey.pem
あとはssl.confに証明書等を登録してやればOK
#/etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/letsencrypt/live/test.hogehoge.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/test.hogehoge.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/test.hogehoge.com/chain.pem
httpdを再起動してブラウザ等でアクセスすると、成功!
証明書チェーンを確認してみると
-DST Root CA X3
-Let's Encrypt Authority X1
-test.hogehoge.com
となっておりほとんどのブラウザで警告なしに表示可能かと思われます。
##注意
なにしろLet'sEncryptのサービスがベータ版なので、有効期間が90日となっています。
今のところ定期的な更新が必要なのでご注意を!