Encryptとはhttps://letsencrypt.org/無料で認証されたSSL証明書を発行できるサービスです。今月パブリックベータになり、誰でも試すことができるようになりました。Tech界隈では今アツい技術の一つです。今回使うnginxは1.8系のため、HTTP/2、SPDYは使えません。メインラインの1.9系を使うことで対応できるので、興味がある方は別に調べてみてください。Encryptを使うためには、nginxやapacheなどのウェブサーバーのほかGitが必要です。Encryptが自動的にインストールしてくれます。Gitがインストールされていなければ、事前にyumで入れておきます。Encryptのクライアント本体を適当な場所にgitでクローンしておきましょう。gitが必要な箇所はここだけです。頻繁に更新されているようなので、都度ローカルリポジトリも追従させてあげるのが良いでしょう。このコマンドを実行した場合、letsencryptが使用する必要なライブラリがインストールされていなければ自動でインストールしようとします。rootで実行していない場合はパスワードを入力してください。EC2で実行している関係で上のような警告が表示されました。EC2上で利用するのであれば一般的なCentOS等と使い方は何ら変わりませんので、言われるままに継続します。manually一度debugをつけて実行した後はdebugなしで利用できるようです。発行にはドメインの所有権認証が必要です。letsencrypt-autoでは、次の方法でこの認証を簡単なコマンドだけで実行できます。3種類の証明書取得方法をサポートしています。apacheを使っている場合はapacheを使うと自動でインストールしてくれます。standaloneはletsencrypt自身がウェブサーバーを起動して所有権の認証を行います。webrootは既にウェブサーバーが起動している場合、ドキュメントルートを指定して既存のサーバーを介して認証を行います。今回はnginxですし、既に起動しているサーバーに対してインストールしょうとしているので、3番目のwebrootオプションを使って認証を行います。<ドメイン>上記を実行するとメールアドレスの入力と利用規約への同意が求められますので、指示通り進みます。認証情報を紛失した際などは、ここで登録したメールアドレスを使ってリカバリするので間違えないように気をつけてください。次のようなメッセージが出力されれば、正しく証明書を取得することができました。中に証明書類が保存されています。証明書をウェブサーバーにインストールする前に、セキュリティ向上のために実行することをおすすめします。opensslコマンドで生成します。AWSのsmallインスタンスで3分程度かかりました。環境によってはもっと時間がかかるかもしれません。最後に取得したSSL証明書をnginxから参照して利用できるようにします。includeSubDomains;';}上の通り変更して、nginxを再起動します。設定ファイルに問題がなければSSLで通信できるようになっていますので、テストしてみましょう。使って簡単に実施できます。最低限の設定を施しただけだとCやDランクになるかと思います。POODLEや弱いDHパラメーター、ダウングレード攻撃などの脆弱性を防いでいない場合は評価が下がります。前述のnginx.confの設定を施せばAまたはA+の評価になると思います。ときどきこのサイトでSSLの安全性をチェックして、常にこの評価をキープしていきましょう。以前から無料で発行できるSSL証明書もありましたが、手続きが煩雑だったりと色々厄介なことが多かったです。Encryptもまだ改善の余地はあり、速い速度で開発も進んでいますので、まだまだ今後に期待できるでしょう。EncryptでSSL対応が当たり前な時代になれば良いですね。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。