ravelll の日記

よしなに

Let's Encrypt を利用して ravelll.org を HTTPS 化した

f:id:ravelll:20161124121117p:plain

Amazon EC2 上で動かしている自身のポータルサイトを Let's Encrypt を利用して HTTPS 化したので手順をメモ。思った以上に簡単にできてびっくりした。


まず Let's Encrypt のクライアントを入手し、証明書を取得します。 Amazon Linux は公式にサポートされていないので実行には --debug フラグが必要です。 実行してしばらくすると term of conduct に従うか聞かれるので yes を選択。

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto certonly --standalone -d ravelll.org --debug

次に暗号鍵を交換する際に使われる DH パラメータの設定ファイルを生成します。 鍵長は 2048 bit で。

sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl dhparam 2048 -out dhparam.pem

後は生成した証明書を利用したり脆弱な暗号化スイートやプロトコルを利用しないようにしたりすべく nginx.conf を編集します。 自身では以下のようにしました。

server {
  listen 80;
  listen [::]:80;
  return 301 https://$host$request_uri;
}

server {
    server_name 'ravelll.org';

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_session_timeout 5m;

    ssl on;
    ssl_prefer_server_ciphers on;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_certificate /etc/letsencrypt/live/ravelll.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ravelll.org/privkey.pem;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/ravelll.org/fullchain.pem;
    resolver 8.8.8.8;

    ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!EXPORT:!DES:!3DES:!MD5:!DSS:!aNULL:!eNULL;

    add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';

    location / {
      root /var/www/;
      index index.html index.htm index.php;
    }
}

nginx を再起動すると、正常に https 接続ができ、http ページへのアクセスが https ページにリダイレクトされることが確認できた。

QALYS SSL LABS の SSL 脆弱性テストをやってみると無事 A+、めでたい!

https://www.ssllabs.com/ssltest/analyze.html?d=ravelll.org

References

"【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜" にてトークしてきました

ウェブ接客プラットフォーム Karte を運営する株式会社プレイドさんと合同で行われた勉強会 "【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜" にてトークしてきました。

プレイドさんのテックブログにも開催エントリが公開されています。

tech.plaid.co.jp

今回は自動テストと CI がテーマということで、ペパボの CI 環境におけるプロダクトの変遷や drone.io を使った現在の構成、開発現場での利用事例について話しました。

speakerdeck.com

自身のトークについて書くと、今回のトークは20分の枠で、実は過去最長の枠だった(それまで過去最長は YAPC::Hachioji と修論発表の15分)。加えてペパボで drone.io が運用され始めた頃は休職していて導入フェーズの事情をあまり知らなかったり、drone.io の構造や仕様にも明るくなかったので発表が決まってから結構焦っていた。更に開催1週間前に初めて30分のトークセッションも任されていることを知り、心労が凄かった。

それからは当時の Issue を漁ったり drone.io のソースを読んだり社内の有識者にあたったりしつつ、比較的早い時期から資料作成にあたった。おかげで発表もトークセッションはそれなりに上手くこなせたと思うし、質疑応答や懇親会での会話も盛り上がって良かった。

他の方々のトークもどれも面白くて、E2E テストの高速化や安定化はどこも課題になっているんだな〜という学びもあった。同僚の @NAKANO_Akihito さんが話していた xUnit Test Patterns も全く知らず、興味深かったので内容を伺ったりした。発表者と同じ場にいるとあれこれすぐ聞けて便利ですね。

ありがたい機会や会場を提供いただいたプレイドのみなさま、ありがとうございました!お疲れ様でした!

IIDX 23 copula まとめ

f:id:ravelll:20161105235029p:plain f:id:ravelll:20161105235036p:plain f:id:ravelll:20161105235041p:plain

プレイの頻度とかモチベーションについてどういう経過があったのか全然覚えてないんだけれど、稼働初期にガッとやって途中3ヶ月くらいほとんどやらない期間があって稼働終了までちょいちょいとやってた感じだったと思う。まさか前作より回数増えるとは思わなかった。 多分 DP より SP の方がやや多くプレイしていて、おかげで DP が前にも増して下手になった。残存した全一は多分30曲くらい、意外と残った。

SINOBUZ は稼働して早1週間以上が経ってるわけだけど、特にやる気が出たりはしていない。あと最近知人からコントローラーを譲って(無料ではない)いただいて、大小問わずゲーセンに行って満たしていた IIDX 欲も多少は家で満たせるようになったので前作以上にプレイ回数が落ち込む気がする。いよいよ今作は全一が1曲も残らず終わるんじゃないだろか。

とは言え、ゲーセン繋がりの知人との交流が薄れるのは寂しいので、少なくともちょいちょいとは各所に顔を出していきたい気持ちです。