CentOS7 + Apache2.4 を 無料 の SSL 「Let’s Encrypt」でSSL化

2018年7月からHTTPのサイトでChromeの強制的な警告表示が出るようになりました。

どのサイトでもSSL化必須ということで、CentOS7 + Apache2.4環境で無料のSSL「Let’s Encrypt」の導入を試してみました。

★関連記事
CentOS6 + Apache2 を無料のSSL「Let’s Encrypt」でSSL化

 

念のため無料のSSLですが暗号強度的には変わりはありません。
https://ssl.sakura.ad.jp/column/free-or-paid/

そもそも無料のSSL(というかドメイン認証)って安全なの?ということでSSLサーバー証明書の違いなど。
https://ssl.sakura.ad.jp/column/attestation-level/

 

流石、さくらさん「Let’s Encrypt」の運営元のISRGのスポンサーだけあって資料がとてもわかりやすいです。

 

そういえば以前に上場企業がDV証明書を使っていて議論になっていたことがありました。
https://twitter.com/HiromitsuTakagi/status/1004013636883382274

余談ですがこちらのサイトはクレジットカードの流出があって既にEV証明書を使っているのですが。
http://www.itmedia.co.jp/news/articles/1805/10/news062.html

そして本家サイトがSSL無しというところも風情があって。。。

 

さて、実際問題としてサイトを立てていく上で都度EV認証とかはポリシーによってはあまり現実的でないケースもあるので、DV証明書の中でも使い勝手の良い証明書の「Let’s Encrypt」の導入を試してみます。

「Let’s Encrypt」を運用していく上での大きな特徴は以となります。

・基本無料である
・更新は90日で行う
・更新はツールで自動更新を行うため、コマンドベースのクライアントが必要

今回導入する環境は「CentOS7.5 + Apache2.4」です。

 

インストール

Let’s Encryptで使うクライアントツールはACMEプロトコルに対応したCertbotというクライアントが必要です。
http://jxck.hatenablog.com/entry/letsencrypt-acme

CentOS7ではApache用のCertbotクライアントは、EPELリポジトリからインストールすることができます。

以下ではEPELのリポジトリも導入していますが、設定済みの方は上の行は必要ありません。

 

次のようにオプションを指定して certbot コマンドを実行します。

以下では「example.com」となっていますが、-d オプションには、証明書を発行するサーバーのドメインを入れてください。
-w オプションでは DocumentRoot のパスを指定します。

 

上記のように「Congratulations!」と出て入れば導入は完了です。

証明書関連のファイルを以下で確認してみます。

 

「サーバ証明書(公開鍵)」、「中間証明書」、「サーバ証明書と中間証明書が結合されたファイル」、「秘密鍵」の4つのファイルができます。

ApacheにSSLの設定は以下で実施できます。

尚、「サーバ証明書と中間証明書が結合されたファイル(fullchain.pem)」を設定すれば個別に中間証明書は必要ありません。

 

apacheを再起動します。

 

これで無事SSLのインストールが実施できました。

 

自動更新の設定

「Let’s Encrypt」では証明書は90日で切れてしまいます。

そこで、cron などで定期的なクライアントのインストールを実行します。

 

上記のコマンドで証明書の有効期限が30日以内になると、再インストールを行います。

「–force-renewal」のオプションをつけていないので上記日数にならないとインストールは行いません。

毎日実行していますが、こちらは「Let’s Encrypt」に負荷をかけません。

尚、証明書の再インストールが行われると自動的にapacheの再起動を行います。

https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-centos-7

 

このブログは株式会社CoLabMixによる技術ブログです。

GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。

Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。

開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。

お問い合わせやご依頼・ご相談など

 

関連記事

  1. CentOS 7で firewalld の設定

  2. DjangoでWebアプリケーションを作成してみる その2(ubunt…

  3. CentOS7系の最新版のredisをyumでインストール

  4. 外部のライブラリを利用してのAWS Lambdaの設定

  5. Python で Elasticsearch の settings と…

  6. 「outlook.jp」や「hotmail.co.jp」宛のメールがエ…