はじめに
まだ気付いていない場合は、暗号化が重要です。 Webの場合、これはSSL証明書を使用してWebトラフィックを保護することを意味します。最近、MozillaとGoogleは、SSL証明書のないサイトをFirefoxとChromeで安全でないものとしてマークするところまで行ってきました。
Webを暗号化で高速化するために、LinuxFoundationとElectronicFrontierFoundationおよびその他の多くの企業がLetsEncryptを作成しました。 LetsEncryptは、ユーザーが自分のWebサイトの無料のSSL証明書にアクセスできるようにするために設計されたプロジェクトです。これまで、LetsEncryptは何百万もの証明書を発行しており、大成功を収めています。
特にEFFのCertbotユーティリティを使用する場合、DebianではLetsEncryptを簡単に利用できます。
オペレーティングシステム
- OS :Debian Linux
- バージョン :9(ストレッチ)
Apacheのインストール
Certbotには、Apacheサーバー専用のインストーラーがあります。 Debianのリポジトリでこのインストーラを利用できます。
# apt install python-certbot-apache
パッケージはcertbot
を提供します 指図。 ApacheプラグインはApacheサーバーとインターフェースして、構成と証明書を生成しているドメインに関する情報を検出します。その結果、証明書の生成に必要なコマンドは短いだけです。
# certbot --apache
Certbotは証明書を生成し、それらを使用するようにApacheを構成します。
Nginxのインストール
Nginxにはもう少し手動設定が必要です。繰り返しになりますが、Nginxを使用している場合は、おそらく手動構成に慣れています。いずれの場合も、CertbotはDebianのリポジトリからダウンロードできます。
# apt install certbot
Certbotプラグインはまだアルファ版であるため、使用することはお勧めしません。 Certbotには、証明書のインストールと保守を容易にする「webroot」と呼ばれる別のユーティリティがあります。証明書を取得するには、以下のコマンドを実行して、Webルートディレクターと証明書の対象となるドメインを指定します。
# certbot certonly --webroot -w /var/www/site1 -d site1.com -d www.site1.com -w /var/www/site2 -d site2.com -d www.site2.com
1つのコマンドで複数のドメインに1つの証明書を使用できます。
構成に証明書を追加するまで、Nginxは証明書を認識しません。すべてのSSL証明書は、server
とともにリストする必要があります それぞれのウェブサイトをブロックします。また、そのブロック内で、サーバーがポート443
でリッスンする必要があることを指定する必要があります。 SSLを使用します。
server { listen 443 default ssl; # Your # Other ssl_certificate /path/to/cert/fullchain.pem ssl_certificate_key /path/to/cert/privkey.pem # Config # Lines }
構成を保存し、Nginxを再起動して変更を有効にします。
# systemctl restart nginx
Cronによる自動更新
ApacheとNginxのどちらを使用している場合でも、証明書を更新する必要があります。そうすることを忘れないことは苦痛である可能性があり、あなたは間違いなく彼らが失効することを望んでいません。証明書の更新を処理する最良の方法は、1日に2回実行されるcronジョブを作成することです。時々発生する可能性のある失効による証明書の失効を防ぐため、1日2回の更新をお勧めします。ただし、明確にするために、実際には毎回更新されるわけではありません。ユーティリティは、証明書が古くなっているか、または30日以内にあるかどうかを確認します。基準を満たしている場合にのみ更新されます。
まず、Certbotの更新ユーティリティを実行する簡単なスクリプトを作成します。提供されないように、ユーザーのホームディレクトリまたはスクリプトディレクトリに配置することをお勧めします。
#! /bin/bash certbot renew -q
スクリプトも実行可能にすることを忘れないでください。
$ chmod +x renew-certs.sh
これで、スクリプトをcronジョブとして追加できます。 crontabを開き、スクリプトを追加します。
# crontab -e
* 3,15 * * * /home/user/renew-certs.sh
終了すると、スクリプトは毎日午前3時と午後3時に実行されます。サーバーの時計によって。
まとめ
Webサーバーを暗号化すると、ゲストと自分の両方が保護されます。暗号化は、サイトがブラウザに表示される役割も引き続き果たします。暗号化がSEOでも役割を果たすと想定するのは、それほど難しいことではありません。どのように見ても、Webサーバーを暗号化することは良い考えであり、LetsEncryptはそれを行う最も簡単な方法です。