webhack / ウェブ技術が好き

javascriptやcssやHTML5とかサーバーサイド等のウェブ技術全般を好きに書くブログ

さくらでSSL(RapidSSL)の申し込みで自動認証が色々と面倒だったので情報まとめ

さくらでSSL(RapidSSL)の申し込みで行われる認証ファイルの自動認証が色々を面倒だったのでブログに情報をまとめます。

自動認証とは/.well-known/pki-validation/fileauth.txtをジオトラスト社のクローラーに自動でクロールしてもらい、認証確認をしてもらう一連の流れを指します。

HTTPSの解除

状況によりけりですが、サーバー証明書の有効期限が切れていたり中間CA証明書が正しく含まれていない場合はクローラーが上手に認証ファイルをクロールしてくれません。

そのため以下のようにhttpsへ転送している場合は、その設定を解除します。

# RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
# RewriteRule ^(.*)$ https://tkosuga.jp%{REQUEST_URI} [R=301,L]

SSLがvalidな状態であれば問題ありません。

また、今時ないかと思いますがTLSのバージョンが1.1以上である必要があるようです。もし万が一、TLS1.0を利用している場合は自動認証されません(TLS1.0の無効化期限を過ぎているのに利用している方が問題ですが)。

中間CA証明書

もし独自でSSLをインストールする場合は中間CA証明書を含めるようにしましょう。以下URL先を参照して適切な中間CA証明書を含めて下さい。

https://www.geotrust.co.jp/resources/rapidssl/repository/intermediate_sha2.html#b

改行コードの有無

認証ファイルの末尾に誤って改行コードが含まれたりすると自動認証されません。そのためテキストファイルから改行コードを取り除く必要があります。

Linuxサーバー上では以下のようにコマンドで削除してあげると楽です。

cat fileauth.txt | tr -d '\n' > fileauth.txt

gzipの解除

認証ファイルはgzip圧縮を解除してプレーンな情報にしないと自動認証されないらしいです(ほんとかな?)。実際にそのようなのでmod_deflateで認証ファイルを解除します。

<IfModule mod_deflate.c>
  SetEnvIfNoCase Request_URI "/.well-known/(.*)$" no-gzip

上記の設定で /.well-known/ 以下はgzipが解除されます。

クローラーで認証ファイルがクロールされるタイミング

以下ジオトラストサイト内の「ファイル認証とはなんですか?」にクローラーの詳細が記載されています。更新日を見ると2017/09/26となっており、小まめに更新されているようです。

https://knowledge.geotrust.com/jp/support/knowledge-base/index?vproductcat=G&vdomain=GEOTRUST_JP&page=content&id=SO24207&actp=LIST&viewlocale=ja_JP&locale=ja_JP&redirected=true

2017/10/10日時点でのクロールされるタイミングの要点を以下にまとめます。

以下の上記URLからのクロールタイミングを抜粋したテーブルです。認証用ファイルが届いてから速いほど、頻度が高いため認証の確認を行い易いです。

  • 経過時間 | 間隔
  • 送信直後 - 15分後 | 1分毎
  • 15分後 - 1時間後 | 5分毎
  • 1時間後 - 4時間後 | 15分毎
  • 4時間後 - 1日後 | 1時間毎
  • 1日後 - 1週間後 | 4時間毎
  • 1週間後 - | 1日毎

1週間を経過すると1日1回になるため試しづらくなります。そして、このクロールしてもらうタイミングは手動で指定できません。いつくるか分からないクローラーを待つことになります。