無料のSSL証明書 Let’s EncryptでApacheをSSL化

2017-11-17

概要

ownCloudをサーバーに導入しましたが、暗号化したいのでSSL証明書をインストールします。SSL証明書は無料の「Let’s Encrypt」を利用します。

Let’s Encryptは、2016年4月から正式なサービスを開始され、SSL(TLS)に利用できるサーバ証明書を無償で発行している認証局またはサービスです。証明書の発行期限は90日と短いですが、無料なのと、導入にはコマンドを叩くだけで導入できます。
また、証明書の発行期限は90日と短いですが、証明書を発行するコマンドをcronに設定すれば自動でおこなえます

Let’s Encryptの詳しい説明は以下のサイトを参考にして下さい

ITmedia:無償かつ自動でSSL(TLS)証明書を発行できる「Let’s Encrypt」とは?

 

CentOS 6.x系の場合は、Pythonのバージョンが古いのでこの作業では更新できないので下記の記事の方法を利用してください

無料のSSL「Let’s Encrypt」のインストール(CentOS 6.x)

CentOS7 に Let’s Encryptインストール

この手順でのインストールは、CentOS 7となっています。
CentOS 6.xの場合は、python 2.7をまであげないとインストールできません

インストールする場所に移動して、githubからcertbotのレポジトリをcloneします。

そのあとに、Let’s Encrypt クライアントが依存するパッケージをインストールします

下記のコマンドで証明書を取得します。使用する環境でディレクトリ、ドメイン名、メールアドレスは変更して下さい

・パラメータの詳細

–webroot WEBサーバのドキュメントルートに認証用ファイルが生成されます。
「.well-known/」というディレクトリが作成され、この中に生成されます
-w WEBサーバのDocumentRootを指定します
-d 証明書を取得するドメインを指定します
-m メールアドレスを指定します。更新期限が近づくとこのアドレスにメールが来ます
–agree-tos Let’s Encrypt の利用規約に同意します

証明書や秘密鍵は「/etc/letsencrypt/archive/」以下に保存されます。下記の場所にシンボリックリンクが生成されます。

  • 証明書: /etc/letsencrypt/live/<ドメイン名>/cert.pem
  • 証明書+中間CA証明書: /etc/letsencrypt/live/<ドメイン名>/fullchain.pem
  • 秘密鍵: /etc/letsencrypt/live/<ドメイン名>/privkey.pem
  • 中間CA証明書: /etc/letsencrypt/live/<ドメイン名>/chain.pem

Apacheの設定

ApacheのSSL設定は以下のように設定しました

SSL証明書 自動更新を設定する (cron)

SSLの更新は以下のコマンドをcronに設定して、毎月1日の朝5時に証明書を自動更新して、Apacheをリロードします。