最近Webサイトを立ち上げるときSSL化するのがトレンドになっていますが、認証を得た機関が発行する証明書が必要になりますよね。ただ、それほど重要なやり取りをしない場合や個人サイトなどでは安い証明書でも気軽に使えないので困ってしまいます。
そこで無料の証明書を利用したくなりますが、幾つかあるなかでもLet’s Encrypt(レッツエンクリプト)は運営元の信頼性も高く候補に上がるのではないでしょうか。
サーバーのログイン権限があれば直ぐに発行が行われ、慣れれば更新もラクチンですので、簡単なインストール方法をガイドしていきますね。
(ApacheのSSL設定までが行われている状態での説明になります)

■CentOS6系の場合(7系は不要)
下準備から!Let’s EncryptはPython2.7以上が必要になりますが、CentOS6系ではデフォルトで入っていないので先ずはPython2.7のインストールをします。SCLを利用し既に入ってるパッケージのバージョン管理を行います。

■Let’s Encryptのプログラムをダウンロード(6系7系共通)
Let’s Encryptのプログラムをダウンロードしてパーミッションを変更します。ディレクトリは任意で変更しても大丈夫です。

■証明書の発行
次に証明書を発行します。発行にあたりドメインが正確かDNSのチェックが入ります。違うドメインの証明書の発行は出来ないので気をつけて下さい。
またcertonlyオプションは証明書の発行のみを行います。SSL設定を行ってない場合このオプションをつけないと自動で設定を行ってくれますが、ssl.confが勝手に書き換わりますのでお気をつけを。

6系の場合(Python2.7で実行します)

7系の場合

コマンドを実行すると発行URLの確認登録メールアドレス認証などの質問が表示されますので間違えないか確認しつつ進んで下さい。

■Apacheに証明書を設定(6系7系共通)
無事証明書が発行されると/etc/letsencrypt/live/<ドメイン名>/のディレクトリが作られ証明書が保存されています。

証明書 cert.pem
証明書+中間CA証明書(Apacheでは使わない) fullchain.pem
秘密鍵 privkey.pem
中間CA証明書 chain.pem

これをApacheのssl.confにて指定しましょう

以下を書き換える

これでApacheを再起動し、コンフィグに間違えがなければhttpsにてアクセス出来るようになり無事組み込み完了です。安全なサイトになりましたね。

■Let’s Encryptの自動更新
無料で簡単に導入できるLet’s Encryptですが、証明書の期間が3ヶ月と短い短所もあります。頻繁に変更する事で安全を確保するとのことですが、3ヶ月毎に作業をするにはメンドウなのでcrontabにて自動更新を設定します。
毎月1日の午前4時に更新する設定です。Apacheの再起動があるのでWeb系のプログラムなどを動かしている場合は調整してください。

6系の場合
/etc/crontabに直接書いて問題ないと思います。

7系の場合
/etc/crontabだとサーバーの設定かうまく動かないのでユーザー毎のcron(/var/spool/cron/root)に書くと動きました。

以上で、毎月自動で証明書が更新されるので、商用SSL証明書よりラクチン運用になります。
cronの設定がうまく動かない場合は以下のコマンドが正常に完了するか試して下さい。一日で発行出来る回数が決まっているようなので「–dry-run」オプションをつけてテストしてください。

6系の更新テスト

7系の更新テスト

それではラクチンで安全サイト運営をしていきましょう!

このエントリーをはてなブックマークに追加
PR 気になる広告でしたらポチッ!