Let’s Encryptとは
Let’s Encryptは無料で使えるSSL認証局です.
Let’s Encryptで証明書を取得し,Apacheで動作させるまでの方法を書き残しておきます.
動作環境は,
- Ubuntu 12.04
- Apache 2.4.12
証明書の取得
クライアントの導入
githubからクライアントを持ってきて,依存関係の確認などを行います.
3行目でヘルプを確認していますが,このときに依存関係の確認・更新などを行うようです.
1 | git clone https://github.com/letsencrypt/letsencrypt |
証明書の取得
今回,証明書はサブドメインごとに取得します.
なお,80番ポートを使うので動作中のApacheは停止しておきます.
1 | sudo service apache2 stop |
初回はメールアドレスなどを入力させるダイアログが出てくるので,いい感じに入力していきます.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/(ドメイン)/fullchain.pem. Your
cert will expire on (有効期限). To obtain a new version of the
certificate in the future, simply run Let’s Encrypt again.
この画面が出れば取得完了です.
見れば解ると思いますが,Let’s Encryptで取得した証明書は有効期限が90日しかありません.
証明書の更新は次のコマンドを打つことで行えます.
また,更新後にApacheを再起動する必要があります.
1 | letsencrypt-auto renew --force-renew |
今回取得した証明書は,/etc/letsencrypt/live/(ドメイン)/の中に入っています.
Apacheの設定
とりあえず
Apache2.4.8以降では,それ以前と設定の仕方が変わっているので気をつけてください.
とりあえず,https://blog.taniho.net/にアクセスできるように設定してみます.
1 | <VirtualHost *:443> |
1 | sudo service apache2 restart |
設定を有効化する
/etc/apache2/site-availableにsite設定を書いたら,次のコマンドで有効化,無効化することができます.
1 | a2ensite (設定ファイル名) |
同様に,Apacheのモジュールを有効化・無効化させる場合は次のコマンドを使います.
1 | a2enmod (モジュール名) |
今回はmod_sslを有効化する必要があるので,次のコマンドを叩いておきます.
1 | a2enmod ssl |
httpに来たアクセスをhttpsにリダイレクトさせる
必ずhttpsでアクセスさせたい場合や,その逆の場合もあると思います.
ひとまず,http://blog.taniho.net/にアクセスされた場合にhttpsに転送する設定をまとめておきます.
VirtualHost設定の中に次の内容を書きます.
1 | RewriteEngine On |
参考
CentOS 7 + Apache 2.4 で Let’s Encrypt の証明書を導入する手順
Let’s Encrypt サーバー証明書の取得と自動更新設定メモ
apacheでhttpへのアクセスをhttpsへ自動リダイレクトする