常時SSLの更新エラー対処法

上記のような画像がでてビックリされる方も多いと思います。IISYSでも数日の間、表示されてしまっていました。

> パスワード、メッセージ、クレジットカード情報などを不正に取得しようとしている可能性があります。

してません。

SSL証明書を失効してしまっているサイトが大多数です。

常時SSLへの対応

Googleらが推し進めている常時SSL化がかなり浸透してきました。
常時SSL化とは、Webサイト全体をHTTPS化する(暗号化する)ことを言います。

以前は個人情報を送信するフォームを設置したページだけに使われるのが一般的でしたがここ数年で急速に常時SSL化が推し進められ、ブラウザによっては、SSL化されていないページは警告表示されるようにまでなってきました。
SSL化が進んだ背景についての詳細はこちらのサイトに詳しく書いてあります。

IISYSでは2017年よりLet’s Encryptを使った常時SSL試験運用をして参りましたが、証明書更新時にいくつかの問題に遭遇しましたので、レポートしておきます。

【現象】一部のドメインで自動更新が効かず、証明書の期限切れを起こしてしまう。

  • Webサーバーによるリダイレクト設定
  • well-knownディレクトリのパーミッション設定
  • WordPress等CMSを動かしている場合のHTTPステータスコードの問題

上記のような環境下でSSL証明書の更新がうまくいかずに期限切れを起こしてしまい、該当ドメインのサイトを開こうとするとブラウザ警告がでて表示されないという事象がネット上でも多く見受けられました。

該当ドメインの本来のルートディレクトリでは無く、認証専用のディレクトリを用意しておく方法で、多くの運用方法に対応することができます。

/usr/local/www/letsencrypt

バーチャルドメイン運用の場合、上記のようなディレクトリを作成しておき、それをwebrootに指定します。

# certbot certonly --webroot -w /usr/local/www/letsencrypt -d DOMAINNAME

証明書が無事に発行されたら、Webサーバーの設定をしておきます。

Nginxの設定例

webroot.conf

location ^~ /.well-known/ {
    root  /usr/local/www/letsencrypt;
}

virtualdomain.conf

include webroot.conf;

設定情報を読み込み直します。

# nginx -s reload

投稿者: iisys