SSL(HTTPS通信)

サーバ

UbuntuへLet’s Encryptをインストール(Certbot編)

今回は、UbuntuサーバにLet's Encryptをインストールする方法をまとめました。

インストール前の事前準備

まず、インストールに必要な依存パッケージを設定します。

mod_sslを有効にする

mod_sslが有効になっていない場合には、

# a2enmod ssl

で有効化しておきます。

Gitをインストール

Gitからソースをクローンするので、
インストールしていない場合には、

# sudo apt-get install -y git

でGitをインストールしておきます。

これで事前準備は完了したので、
ここからがインストールの開始です。

証明書のインストール

GitからCertbotをインストール

■作業用のディレクトリに移動
# cd /usr/local

■Gitから「Certbot」をクローン
# git clone https://github.com/certbot/certbot

これで、「/usr/local/certbot」以下に「Certbot」がインストールされました。

証明書を発行

# certbot-auto certonly --webroot --webroot-path /var/www/html/ -d sample.com -m info@sample.com
※エイリアス「www」あり・なしの両方に対応する場合には、「-d」を2つ設定する

↓その場合のコマンドはこんな感じ

# certbot-auto certonly --webroot --webroot-path /var/www/html/ -d sample.com -d www.sample.com -m info@sample.com

正常に処理が完了すると、以下のようなメッセージが出ます
====================================
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for sample.com
http-01 challenge for www.sample.com
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/sample.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/sample.com/privkey.pem
Your cert will expire on 2018-12-24. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
====================================

証明書が発行されているかを確認

# ll /etc/letsencrypt/live/sample.com/

drwxr-xr-x 2 root root 4096 Sep 25 19:40 ./
drwx------ 5 root root 4096 Sep 25 19:40 ../
lrwxrwxrwx 1 root root 34 Sep 25 19:40 cert.pem -> ../../archive/sample.com/cert1.pem
lrwxrwxrwx 1 root root 35 Sep 25 19:40 chain.pem -> ../../archive/sample.com/chain1.pem
lrwxrwxrwx 1 root root 39 Sep 25 19:40 fullchain.pem -> ../../archive/sample.com/fullchain1.pem
lrwxrwxrwx 1 root root 37 Sep 25 19:40 privkey.pem -> ../../archive/sample.com/privkey1.pem
-rw-r--r-- 1 root root 682 Sep 25 19:40 README

Apacheから証明書を参照できるように設定

証明書の発行が完了したら、
Apacheから証明書を参照できるように読み込みの設定します。

Apacheのconfを修正

# sudo vi /etc/apache2/apache2.conf

でconfファイルを開いて以下を追記します

ここで、Apacheを再起動します。
# sudo service apache2 start

ブラウザからの確認

実際に「https://sample.com」と「https://www.sample.com」にアクセスしてみて、
正常に画面が表示されるかを確認して下さい。

問題なく表示されていれば、
これでインストールまで完了です。

自動更新設定

Let's Encryptは90日毎に更新が必要になります。
が、毎回更新を行うのは手間になるので、Cronで自動更新をスケジューリングしておきます。

自動更新設定の前

自動更新設定の前に、Cronで設定するコマンドの実行テスト
# sudo /usr/local/certbot/certbot-auto renew --post-hook "sudo service apache2 restart"

※インストールしたばかりなので、以下のようなメッセージが出ればOK
====================================
The following certs are not due for renewal yet:
/etc/letsencrypt/live/sample.com/fullchain.pem expires on 2018-12-24 (skipped)
No renewals were attempted.
No hooks were run.


====================================

証明書自動更新の設定

「/etc/cron.d/」の中に「certbot」というファイルを作成して、

スケジュールを設定することにします。
# sudo vi /etc/cron.d/certbot

で、以下を記述します。

30 12 * * 1 root /usr/local/certbot/certbot-auto renew --deploy-hook 2>&1 "sudo service apache2 restart" >&1 | mail -s "Let's Encrypt auto update" info@sample.com
※毎週月曜日の12:30に実行
※念のために、実行結果を指定のメールアドレスに届くようにしています。

これで、設定は完了です。

関連記事

  1. .htaccess

    サーバ

    .htaccessでno-cacheを設定

    ホームページを修正したにも拘らず、お客さんから 「修正されていない…

  2. 日本語ドメイン

    サーバ

    日本語ドメインのバーチャルホスト設定(サブホスト設定)

    先日、日本語ドメインのバーチャルホスト(サブホスト)設定を行う…

  3. MySQL

    サーバ

    ConoHaサーバへMySQL5.7をインストール

    こちらの記事では、ConoHa VPSサーバへのMySQL5.6の…

  4. サーバ

    yumコマンドがロックされてました。。。

    centOSを入れているサーバーで、# yum install x…

  5. SSL(HTTPS通信)

    サーバ

    UbuntuへLet’s Encryptをインストール

    今回は、UbuntuサーバにLet's Encryptをインス…

  6. catch_Linux

    サーバ

    SORBSのフィルターを解除

    某サーバにサイトを移した際に発生した現象なんですが、メールアドレス…

最近の記事

  1. PHP
  2. PHP
  3. 風邪予防
  4. WordPress(WP)
  5. PHP
  6. 宅建
  7. アンチWP
  8. 日本語ドメイン
  9. WordPress(WP)
  10. SSL(HTTPS通信)
PAGE TOP