ConoHa VPS(Ubuntu16.04)+ApacheでLet’s Encryptの設定をした

リアルインターネットなどという大仰なブログ名を掲げておきながら、SSLに対応していないのはリアルじゃないと以前から感じていた。調べてみたところ、近年はLet’s Encryptとかいうサービスを利用すれば無料でSSL証明書を入手することができるらしい。早速導入することにした。

導入方法

ConoHaのサイトを見てみたら公式でLet’s Encryptのスタートアップスクリプトが配布されていたけど、動作確認表にCentOSしか載っていなかったので、大人しく手動で設定することにした。

まずは必要なパッケージをインストールする。

$ 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

次に以下のコマンドを叩く。

$ sudo certbot --apache

あとは表示に従って設定していけば、あっという間にHTTPSが適用される。

(参考: https://certbot.eff.org/#ubuntuxenial-apache

エラー対処

…はずだったのだが、最後に無慈悲なエラーメッセージが表示され、失敗の結果に終わってしまった。

Client does not support any combination of challenges that will satisfy the CA

エラーメッセージで検索してみたものの、完全一致する結果はほぼ無い状況。しかし、似たようなエラーメッセージへの対処法であれば引っかかったので、ひとまず試してみることに。

$ sudo certbot --authenticator webroot --webroot-path <ドキュメントルートのパス> --installer apache -d <ドメイン名>

祝福のメッセージが表示された。無事SSL証明書の取得に成功した模様。

Congratulations! You have successfully enabled https://realinternetman.com

自動更新の設定

証明書は3ヶ月で期限切れになるようなので、定期的に更新する必要があるっぽい。最後にcronの設定をして、月1で更新コマンドを投げさせるようにした。

$ sudo touch /etc/cron.d/letsencrypt

上記ファイルを編集し、毎月1日の4:00にcertbot renewを実行させるようにした。cron使うの初めてなので、本当にこれで動いてくれるかは謎。

00 4 1 * * root certbot renew

結果

これでこのブログもまた一歩、リアルなインターネットに近づいた。

余談だが、以上の設定を施したにもかかわらず、何故か最初はGoogle Chromeのアドレスバーに「保護された通信」の文言が表示されなかった。原因を調べてみたところ、以前貼った楽天のアフィリエイトリンクがhttps非対応なせいであることが判明。別サービス経由でリンクを貼り直すことで無事対応できた。

楽天ダサいな〜と思ったけど、今月は楽天カードローンで金を借りたばかりだったので、全てを水に流すことにした。

コメントする

メールアドレスが公開されることはありません。