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/src

■Gitからリポジトリをクローン
# sudo curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto

権限付与

# sudo chmod 700 /usr/bin/certbot-auto

証明書を発行

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

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

# ./letsencrypt-auto certonly –webroot –webroot-path /home/sample.com/www/sample.com/ -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
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
You have an existing certificate that contains a portion of the domains you
requested (ref: /etc/letsencrypt/renewal/www.sample.com.conf)
It contains these names: www.sample.com
You requested these names for the new certificate: sample.com,
www.sample.com.
Do you want to expand and replace this existing certificate with the new
certificate?
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
(E)xpand/(C)ancel: E
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for sample.com
http-01 challenge for www.sample.com
Using the webroot path /home/sample.com/www/sample.com for all unmatched domains.
Waiting for verification…
Cleaning up challenges
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/www.sample.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/www.sample.com/privkey.pem
Your cert will expire on 2018-12-05. 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/www.sample.com/

drwxr-xr-x 2 root root 4096 Sep 6 12:06 ./
drwx—— 3 root root 4096 Sep 6 12:10 ../
lrwxrwxrwx 1 root root 40 Sep 6 12:06 cert.pem -> ../../archive/www.sample.com/cert2.pem
lrwxrwxrwx 1 root root 41 Sep 6 12:06 chain.pem -> ../../archive/www.sample.com/chain2.pem
lrwxrwxrwx 1 root root 45 Sep 6 12:06 fullchain.pem -> ../../archive/www.sample.com/fullchain2.pem
lrwxrwxrwx 1 root root 43 Sep 6 12:06 privkey.pem -> ../../archive/www.sample.com/privkey2.pem
-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」にアクセスしてみて、
正常に画面が表示されるかを確認して下さい。

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

自動更新設定

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

自動更新設定の前

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

※インストールしたばかりなので、以下のようなメッセージが出ればOK
=====================================================================================
The following certs are not due for renewal yet:
/etc/letsencrypt/live/www.sample.com/fullchain.pem expiresOK on 2018-12-05 (skipped)
No renewals were attempted.
No hooks were run.
Additionally, the following renewal configurations were invalid:
/etc/letsencrypt/renewal/sample.com.conf (parsefail)
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
0 renew failure(s), 1 parse failure(s)
=====================================================================================

証明書自動更新の設定

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

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

で、以下を記述します。

30 12 * * 1 root /usr/bin/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. サーバ

    メールユーザー作成でトラブルが!!

    弊社は、現在サーバ移転を実施中です。※サーバには、バーチャルホスト…

  2. WordPress

    WP(WordPress)

    WP パーマリンク設定に必要な.htaccessを有効化!!

    WordPressを使ってブログを構築して、パーマリンクの設定を「…

  3. SiteGuard Lite 不正アクセス検出画面 編集画面

    サーバ

    WAF「SiteGuard Lite」の検出メッセージ画面の編集

    WAFを導入されたお客さんから、不正アクセスを検知した際の画面をも…

  4. サーバ

    SORBSのフィルターを解除

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

  5. Apache

    サーバ

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

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

  6. KUSANAGI(草薙)

    サーバ

    【KUSANAGI】申し込み~初期設定

    今更なんですが、お客様からの依頼で初めてKUSANAGIを触ってみ…

最近の記事

  1. SSL(HTTPS通信)
  2. WordPress
  3. データベース
  4. データベース
  5. データベース
PAGE TOP