ブログを無料でSSL化する

こんにちは、masakiです。

近年は、WebサイトやブログはSSL化するのが一般的になっています。

SSLに対応しないと、ブラウザで『このサイトは安全ではありません』というようなメッセージが出るので、訪問者に不安感を与えます。

この記事ではlet’s encryptのサービスを利用して、無料でサイトをSSL化する方法を解説します。

前提としてUbuntu + nginxの環境をSSL化する方法を解説します。
基本的にCentOSなど、別のOSでも同じ流れでSSL化できますので、ご自身の環境に応じて読み替えてください。

スポンサーリンク

Let’s Encryptとは

Let’s Encryptとは、2016年からInternet Security Research Group(ISRG)がサービスを提供している、誰でも簡単にSSLを導入できるサービスです。

今までSSLを導入しようとすると、費用が数万から数十万くらいかかった上に、色々ドキュメントや証明書を提出する必要があり、非常にめんどくさい手続きが必要でした。

しかし、このサービスのおかげで誰でも簡単にSSLが利用可能になっています。

正直まじで『すばらしい!』の一言です。

UbuntuにLet’s Encryptを導入する

さくっと終わります、非常に簡単。

letsencryptを入れる

apt-getでインストール。

$ sudo apt-get install letsencrypt

SSL証明書の取得

nginxを一旦止めます。

$ service nginx stop

letsencryptコマンドで証明書を取得します。

$ sudo letsencrypt certonly --standalone -d [あなたのサイトのドメイン名]

メールアドレスなどの入力を求められるので、すべて入力します。

コマンドが完了すると、/etc/letsencrypt/live/配下に色々ファイルが作成されているので見てみましょう。

sudo ls -la /etc/letsencrypt/live/[あたなのドメイン名]

上記ディレクトリ下にpemファイルができていたら完成です。

nginxの設定

/etc/nginx/sites-available/default あたりに以下のSSL設定を追加。

server {
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        ssl_prefer_server_ciphers  on;
        ssl_ciphers  'ECDH !aNULL !eNULL !SSLv2 !SSLv3';
        ssl_certificate  /etc/letsencrypt/live/[あなたのドメイン名]/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/[あなたのドメイン名]/privkey.pem;

        server_name [あなたのドメイン名];
        root /var/www/html;
        location / {
                try_files $uri $uri/ =404;
        }

これでnginx側の設定は終わりです。

nginxを起動します。

$ service nginx start

これでhttps://あなたのドメイン/にアクセスしてみると、すでにSSLが導入されています。

Let’s encryptを自動更新する

Let’s Encryptの証明書の有効期限は90日しかありません。

期限が切れる前に登録したメールアドレスに、通知が来るので毎回更新しなければなりません。

非常にめんどくさいのでcronを使って自動化しましょう。

$ sudo crontab -e

毎月1日の朝4:00に更新するように設定します。

00 04 01 * * sudo service nginx stop; sudo letsencrypt renew; sudo service nginx start

これで自動更新されます。

ではよいSSLライフを!!

スポンサーリンク