【無料】Let’s EncryptでサイトをSSL化する

【備忘録】 Ubuntu18.04/Nginx フリーSSL Let’s EncryptでサイトをSSL化する

フリーで使用できるSSL、Let’s Encryptを使ってサイトをSSL化します。
単にフリーと言いましても、怪しいモノではなく公式に広く使われているSSLです。
不安な方は

公式サイト(日本語)

を一度ご覧になればすぐに分かると思います。

Let’s Encryptは、無料でSSL証明書を発行できるサービスです。さらに証明書の自動更新もできます。SSL証明書はどんなに安いものでも1年毎に数千円かかりますが、無料でできるなんてとても良いですね。

運営は非営利団体がしていて、「Webにおける暗号化(HTTPS)の使用率を100%にする」ことを使命に活動しているようです。カッコイイ。有名企業や団体がスポンサーにいて、かなり頼もしいです。

現在はワイルドカードSSLにも対応しており使い方の幅も広がります。

ではやっていきます。

ステップ1:リポジトリの追加

まずは専用のリポジトリをUbuntuに追加します。
aptコマンドを使ってSSL化に必要なプログラムをインストール。

# aptパッケージ最新化 & リポジトリを追加
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot

# 必要なプログラムをインストール
$ sudo apt install python-certbot-nginx

ステップ2:コンフィグファイルの作成

SSL化するためのコンフィグファイルを作成していきます。
下記の例は最低限の設定ですので、場合に応じて設定項目を追加してください。

# SSL化のwebsiteのコンフィグ作成
$ sudo vi /etc/nginx/conf.d/example.com.conf

# http:// へのアクセスはすべて https:// へリダイレクトする
server {
        listen 80;
        server_name example.com;
        return 301 https://$host$request_uri;
}

server {
        listen 443;
        ssl on;
        ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        root /home/user/public_html/;
        server_name example.com www.example.com;
        # 省略
}

ステップ3:SSL証明書の取得

いよいよSSL証明書を取得します。

ネームサーバー等の設定は完了していることが前提です。
コマンドオプション -d を使うことで、同時に複数のSSL証明書を発行できます。
ワイルドカードマスク証明書を取得します。

sudo certbot --server https://acme-v02.api.letsencrypt.org/directory -d example.com -d *.example.com --manual --preferred-challenges dns-01 certonly

# 設問途中でネームサーバーにテキストコードを入れて下さいと言ってくるので、ネームサーバーを適時に変更してください。

# 最後の表示が下記のようなものが表示されれば証明書発行完了となります。
MPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2020-03-15. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot 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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です