Encrptのパプリックベータサービスが始まりました。(ISRG)によって提供されています。プレミアムスポンサーにはmozillaやAkamai、Cisco、EFFの四つが並んでいて、なかなかに豪華な顔ぶれです。Encryptは電子証明書を無料で、しかもほぼリアルタイムで発行してくれるサービスとセットになった認証局です。今までは有料でSSL証明書を発行している業者しかなかったので、非常に画期的なサービスです。証明書の有効期間が90日と短い事や、今のところ用途はウェブサーバーに限られているようなので、メールサーバーなどでの利用も含めて証明書が必要な場合は、引き続き有料サービスを利用することになると思います。今後はHTTPSが当たり前になっていく現在主流のウェブ技術はHTTP/1.1が基礎になっていまして、これがRFC2616として提案されたのは1999年6月と16年も前の事になります。ここまで広範に利用されることを想定していなかったので、今となっては非効率な部分がいくつもあって、問題点を解決するために次期バージョンであるHTTP/2がRFC7540として今年の5月に提案され、標準となりました。そのRFCに従って各プログラムの実装が進んだので、今ではブラウザとサーバーの大半がHTTP/2に対応しています。HTTP/2の策定には日本のコミュニティも貢献していて、日本人開発者によって実装されたHTTP/2サーバーはいくつもあります。前置きが長くなりましたが、既に主要なブラウザ(ChoromeやFirefox、Safariなど)はHTTP/2対応を完了していますが、HTTP/2を利用するためにはHTTPSが必須となっているため、今後はすべてのウェブサーバーがHTTPS対応を迫られることになっていくと思います。EC2のように低コストで大きな計算能力が得られる環境の出現で、想定よりも低コストで偽の証明書が作成出来るようになったので、ブラウザの大半を担っているGoogle、Microsoft、Mozillaの三社が証明書を無効化する時期を大幅に前倒しする方向で検討している模様。Encryptの導入手順こちら見てもらうと分かりますが、導入は簡単でDebian系のLinuxであればコマンドいくつか入力するだけで導入出来ます。詳しいドキュメントも用意されていますので、他のOSをお使いの方はそちらをお読みください。以下のコマンドを実行すると、自動で必要なパッケージをダウンロードして実行出来る状態になります。root権限が必要なので、sudoが使用出来るユーザーで実行する必要があります。--apacheを実行すれば、自動的に導入されるはずだったのですが、残念ながら弊社のサーバー環境ではうまくいかず以下のエラーが出て、うまく行きませんでした。www.mumpk.comを使って、単に証明書だけを発行するようにしたところ、これは全く問題なく実行されて/etc/letsencryptディレクトリ以下に必要なファイルが作成されました。SSLで検索して設定方法を探して下さい(笑)。letsencryptに関連するのは以下の部分だけです。sslを実行するか、直接シンボリックリンクを作るかして、モジュールを有効にしてください。それとiptablesの設定も要チェックです。あれ?Safariだけ繋がらない!設定後にApacheを再起動して早速接続テストをしてみました。ChromeとFirefoxでは問題なく繋がって鍵マークが出てちょっと嬉しいです。Safariだけが接続に失敗します。Security(ATS)という機能に起因するもののようです。Suiteが限定されているため、今の設定ではハンドシェイクに失敗してしまっていたと。ATSの項目に詳しく書かれています。Generatorなる素晴らしいページを発見し一気に解決しました。onMozillaの中の人達がメインで開発して下さったようで、チョー感謝感激雨あられです。オープンソース最高です。いいつつ私自身は全く貢献していなくて情けないですが、ともかくもありがとうございます。ついでに<VirtualHost>ディレクティブにも見かけない設定があったので、これも追加しました。このヘッダーに対応しているブラウザは自動的にHTTPSを使うようになるみたいです。headersでheadersモジュールを有効にしないと動かないです。https://github.com/letsencrypt/letsencryptwを実行しソースコードを取得。--helpを実行しインストール。www.mumpk.comを実行し証明書を作成。Generatorで設定ファイルの雛形を取得。/etc/apache2/sites-available/にSSL設定ファイルを作成。headersでモジュールを有効化。restarでApacheを再起動。