無料SSL証明書の導入「Let’s encrypt」

security-1202344_1280
LINEで送る
Share on GREE
Share on LinkedIn

GoogleがHTTPSを推奨してHTTP/2.0が2017年には主流になるのではないかとエンジニア周辺ではザワザワしていますが、
HTTPSの流れは2016年度にもAppleのアプリ開発の認証サーバーをSSLのみに変更しているし、Yahooを始め、大手のサイトが個人情報入力ページだけでなく、
トップページからSSLにリダイレクトする仕様になっている。
世の中はどんどんHTTPSの流れになってきています。
SSL必須ですよ・・・

SSLではない?TLS?

正確に言うとSSL規格はすでに脆弱性の為にブラウザなどで使用禁止になっているんですよね。
SSLの上位規格としてTLSというプロトコルに名前も仕様も変わってきています。
ほぼ毎年DNSにおける脆弱性が多発しています。
そして、SSLでは、穴がありすぎるということでTLSに切り替わることが決まったようです。
まあSSLって言っていて問題はなさそうですね。今のところは。

将来80番ポートは使えなくなる?

Googleが、SEOにおいてもSSLを上位表示すると好評したことや、ChromeブラウザでJSコンソールにアラートを表示し始めた事で
世の中は、80番ポートを使ってはいけなくなるのではないかと言われていますが、恐らくそんなことはないでしょう。
きっと、法人サービスはSSL必須で、開発環境や、TEST環境などは、80番で十分でしょう。
誰にも迷惑掛けないしSEOも必要ないでしょうからね。

SSL証明書も無料課の流れ

AWSではLBを使うと無料でSSL証明書が使用できるし、世の中に無料SSLサービスを出してきた会社が出てきています。
今までは金もかかるし、サーバー設定も面倒くさい、ドメイン管理だけで手一杯と感じていた独自エンジニアも多いと思いますが、
SSLをタダで手に入れられるとなれば、入手しないという方向性は無いでしょう。
という事で、僕もSSLをブログに導入する事にしました。

AWSを使っている人は、そちら側で行ってもらいたいんですが、それ以外の方法でサーバーを公開している場合は、以下の2つのサービスが無料SSLとして公開されています。

  1. StartSSL
  2. Let’s Encrypt

でも、実はStartSSLは、2017年4月の時点で、ちゃんとサーバーに証明書をセットしても、ブラウザで、エラーが出てしまいます。
スクリーンショット 2017-04-01 18.44.16
※これで、丸2日ぐらいやられてしまいました・・・

ということで、Let’sEncryptしか選択肢はないようです。

Let’s Enctyprのセットは非常に簡単

簡単に説明すると、以下の手順で導入が完了できます。

  1. 1. certbotのインストール
  2. 2. コマンドを実行、証明書の取得
  3. 3. モジュールの設定、再起動(今回はApache)

※参考サイトを見てもらうか、ググってもらうと、コマンドなどは参考にできます。

証明書の取得

コマンドを実行した後、証明書は
/etc/letsencrypt/live/*domain*
に保存されます。
適宜セットしましょう。
ちなみに、今回の場合のapacheのconfは以下の通りです。

注意点

インストールはgitかaptかyumでサクッとインストールできるのですが、コマンドを実行した時に、少しトラブったので、メモしておきます。
DNS情報がレジストリと食い違っていると、IPの逆引きができない為、エラーが出て、設定が完了しません。
エラーサンプル

今回は、お名前comのDNSレコードの登録が足りていなかったので、追加して解決。
または、登録されていないサブドメイン以外を番号指定することで、設定継続できます。

参考サイト

http://qiita.com/yucjk0120/items/7ef77ad17a96071e9258

設定完了

上記作業が完了し、非常にサクッとSSL対応することができました。
スクリーンショット 2017-04-01 21.07.16

小さくて見えづらいですが、左上に「保護された通信」という文字が表示されているので、成功です。

以後、色々なサービスでの活用ができるので、大きな一歩になりました。

ちなみに、このブログは2017年4月1日時点の情報です。

Leave a Reply

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


*