はじめに

前回までで、自宅の外のWANからサーバーのwebコンテンツにアクセスできるようになったわけだが、一つ問題があります。
それは、HTTPS接続をしようとすると、まともなブラウザだとエラーが出ることです。

フィッシングサイト扱いされます

これは、セキュリティ証明書として、ubuntu server にインストールされていたApacheにもとから入っていたきちんと認証されていないものを使っているからです。
そこで、フリーのセキュリティ証明書を取得することにしました。

フリーの認証局「Let’s Encript」を試す

認証局で証明書を取るというと、手続きのための時間やお金がかかるイメージがあるが、最近は便利なフリーのサービスができてきています。
特に、Let’s Encriptを使うと、無料でかんたんにSSL/TLS通信を実現できます。

インストール手順

使用しているOSは、Ubuntu Server 16.04、サーバーにはApacheを使用しています。
Certbotのサイトを参考にインストールしました。

まずはCertbotクライアントをインストール

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache 

インストールが完了したら、以下のコマンドでcertbotクライアントを実行します。

$ sudo certbot --apache

これを実行すると、自動で全部設定まで書き換えてくれて、証明書を発行してくれます。リダイレクトの設定とかまでしてくれる神仕様。
ただ、Apacheの設定をガッツリ書き換えられるので、自分で設定したい人は、

$ sudo certbot --apache certonly

として、証明書だけを発行してください。

最後に、自動更新の設定をcronに登録しておきます。

$ sudo certbot renew --dry-run

でエラーが出ていないことを確認したら、

certbot renew

をcronに登録して、一ヶ月ごとくらいに証明書情報を更新するようにしてください。
何もしないと90日で失効するようです。

$ sudo echo -e "#!/bin/sh\ncertbot renew" > /etc/cron.monthly/certbot_renew
$ chmod a+x /etc/cron.monthly/certbot_renew

あたりを実行しておけば良さそう。

リダイレクト周りの設定

全部自動で設定してくれるのは嬉しいのだが、リダイレクトの設定がループしてしまったようなので、手動でApacheのバーチャルホストの設定を修正した。
/etc/apache2/sites-available/virtual.host-le-ssl.conf の”Redirect permanent / https://your.domain/”をコメントアウト。
これで83ポートに来たリクエストのみが443ポートにリダイレクトされる。

おわりに

以上の手順を踏むことで、普通のWebブラウザで警告なくSSL接続できるようになりました。
owncloudやWordPressはログインのときにパスワードを送る必要があるので、暗号化されていない状態で使うのは憚れるので安心です。

ちゃんと鍵マークがでた

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください