読者です 読者をやめる 読者になる 読者になる

まどかの戯言集

美容・恋愛についてアラサー男子が実際に使ったり/試したものを書き綴る

kusanagi + letsencrypt でSSL証明書を作ったが、iphoneのsafari等からサイトが見れなくなってハマった件

プログラミング

 

kusanagiと言えば、超高速WordPress仮想マシンで、WordPressサーバを通常の約10倍の速さ程度にしてくれる便利なwordpress専用の仮想マシンです。

 

僕はAWSのEC2で現在絶賛wordpressでのサイトを作成中なのですが、そこでSSL証明証まわりのバグを踏んだのでメモ程度に残しておきます。

 

さくらクラウドやNiftyクラウド、AWS等、様々なパブリッククラウドに対応しているので、kusanagi自身についてや、細かい設定方法・手順は公式に用意されているものをご参照ください。こちらでは踏んだバグと解決策のみにフォーカスして記事を書きます。

 

kusanagi.tokyo

 

letsencrypt

ドメイン認証のSSL サーバ証明書が無料で簡単に発行できるサービスです。現在、サービスをHTTPS で提供する需要は高まっています、と言うか必須になりつつあります。SSLは、インターネット上でやりとりされるデータの「盗聴」や「改ざん」、「なりすまし」を防止するための通信方法です。GoogleがSSLを導入しているサイトをSEOで優遇していたりもしています。

 

会社が運営しているものであれば大抵の場合既に対応されていますが、個人で運営されているサイト、ブログ、サービスはちらほら未対応のものが。このはてなブログも、独自ドメインを設定するとSSL未対応ですよね。今後何かhatena側が対策しないとユーザーは明らかに減るでしょうね。

 

本題

kusanagiの手順に従いSSLをすると以下のディレクトリにaviatorという名前のファイルが作成されます。

/etc/letsencrypt/live/YOUR_DOMAIN/scts/aviator.sct

こいつが諸悪の根源で、こいつがあるとiphone等のモバイル端末から、kusanagi + letsencrypt でSSL化したサイトにアクセスできなくなります。辛い。。

 

safariはサーバーにセキュリティ保護された接続を確立できませんでした 

safariなら上記のエラーが表示されます。chromeなら以下のエラーが表示されます。

ERR_SSL_PROTOCOL_ERROR

 

原因はここらの記事をご参照ください。

otya.me

 

Let's Encrypt でSSL証明書を取得したときCertificat Transparency の登録をしているのですが、それが現在失敗しているようです。

 

これを見つけるのにnginxの設定を見直したり、sertificateファイルが壊れていないか調べたりtcpdumpでネットワーク通信の生のデータをキャプチャしてみたりとても手間取りました。

 

解決方法は単純で

mv /etc/letsencrypt/live/YOUR_DOMAIN/scts/aviator.sct /tmp//aviator.sct

とかして、どこかに退避させるとか。

kusanagi restart 

そもそも

kusanagi ssl --ct off

オフにするとか、すれば解決できます。

 

5時間くらい試行錯誤して僕だけでは解決できず、友人のインフラエンジニアのスペシャリストに相談したら1時間ほどで解決。持つべきものは友でした。お礼にランチをご馳走しました。

 

まとめ

常時SSL化がスタンダードになりつつある昨今で今後も需要が一層高まるletsencryptですが、ぜひこの罠をしっかり回避して、無料でご自身のサイトをssl化対応させてくださいね。僕からは以上です。

 

letsencrypt.jp

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版

  • 作者: 竹下隆史,村山公保,荒井透,苅田幸雄
  • 出版社/メーカー: オーム社
  • 発売日: 2012/02/25
  • メディア: 単行本(ソフトカバー)
  • 購入: 4人 クリック: 34回
  • この商品を含むブログ (35件) を見る
 
ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識