SSL(HTTPS通信)

サーバ

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

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

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

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

mod_sslを有効にする

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

# a2enmod ssl

で有効化しておきます。

Gitをインストール

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

# sudo apt-get install -y git

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

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

証明書のインストール

GitからLet’s Encryptのソースをクローン

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

■Gitからリポジトリをクローン
# sudo git clone https://github.com/letsencrypt/letsencrypt /usr/local/letsencrypt

証明書を発行

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

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

# ./letsencrypt-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-0001/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/sample.com-0001/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
letsencrypt-auto again. To non-interactively renew *all* of your
certificates, run “letsencrypt-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-0001/

drwxr-xr-x 2 root root 4096 Sep 6 19:24 ./
drwx—— 4 root root 4096 Sep 6 19:24 ../
lrwxrwxrwx 1 root root 41 Sep 6 19:24 cert.pem -> ../../archive/sample.com-0001/cert1.pem
lrwxrwxrwx 1 root root 42 Sep 6 19:24 chain.pem -> ../../archive/sample.com-0001/chain1.pem
lrwxrwxrwx 1 root root 46 Sep 6 19:24 fullchain.pem -> ../../archive/sample.com-0001/fullchain1.pem
lrwxrwxrwx 1 root root 44 Sep 6 19:24 privkey.pem -> ../../archive/sample.com-0001/privkey1.pem
-rw-r–r– 1 root root 682 Sep 6 19:24 README
-rw-r–r– 1 root root 682 Sep 6 11:49 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/letsencrypt/letsencrypt-auto renew –post-hook “sudo service apache2 restart”

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

Additionally, the following renewal configurations were invalid:
/etc/letsencrypt/renewal/www.sample.com.conf (parsefail)
/etc/letsencrypt/renewal/sample.com.conf (parsefail)
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
0 renew failure(s), 2 parse failure(s)
====================================

証明書自動更新の設定

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

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

で、以下を記述します。

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

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

関連記事

  1. ubuntu

    サーバ

    Apache2.4 + PHP7.0 + MySQL5.7

    今日は、久しぶりにWEBサーバの構築です。サーバは…

  2. Python

    Python

    ポートを開放していなかった。。。

    弊社のあるサイトをPythonで組み直すことになったので、本日から…

  3. ubuntu

    サーバ

    【Ubuntu】configure→makeでエラーが!

    ライブラリーをインストールしようとした時、configureし…

  4. Apache

    サーバ

    PHP7:Apacheモジュールを有効化

    php7をインストールしたので、テストを兼ねて早速PHPのコードを…

  5. ubuntu

    サーバ

    Ubuntuに「php-fpm」をインストール(Apache2.4 + PHP7.1)

    デフォルトの「mod_php」ではなく、Ubuntuに「php-f…

  6. サーバ

    開発サーバで文字化けが!!

    弊社の開発サーバーにEUC-JPで作成したサイトをアップすると、な…

最近の記事

  1. PHP
  2. Python
  3. Python
  4. PHP
  5. 宅建
PAGE TOP