1
1

古いiOSでのLet's Encrypt証明書の対応方法

Last updated at Posted at 2023-01-18

iOS 9以前が入ったiPhone、iPadではLet's Encrypt証明書を利用したhttpsのWebサイトはエラーになって見ることができません。
これはLet's Encryptのルート証明書DST Root CA X3の有効期限(2021年9月30日)が切れているためです。

[参考] https://letsencrypt.org/ja/docs/dst-root-ca-x3-expiration-september-2021/

下記はいずれかの方法でLet's Encrypt証明書に対応できます。

iOS側で対応する場合

iOSのルート証明書を更新することでLet's Encrypt証明書の対応が可能です。

「Let's Encrypt」の証明書関連のページからISRG Root X1のルート証明書をダウンロードして開くと、iOSのプロファイルでインストールできます。
このルート証明書も「Let's Encrypt」で署名されているためエラーが発生する可能性があります。
ルート証明書をインストールするとiPhone、iPadのSafariでLet's Encrypt証明書を使ったhttpsのWebサイトを見ることができるようになります。

[参考] https://www.sillyfrog.com/ios-9-lets-encrypt

Webサーバー側で対応する場合

利用者ではなくサービス提供者の場合の方法です。
Webサーバーの設定で、古いiOSでアクセスが来たときにhttpへリダイレクトします。
httpアクセスでも問題無いサイトの場合に有効です。

以下は「.htaccess」ファイルの例です。

.htaccess
RewriteEngine On

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_USER_AGENT} ((iPhone|iPad;(|\ U;)\ CPU)\ OS\ (9|8|7|6|5|4|3)_)
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_USER_AGENT} !((iPhone|iPad;(|\ U;)\ CPU)\ OS\ (9|8|7|6|5|4|3)_)
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

httpsアクセスで、WebブラウザのUser-AgentがiOS 9以前のSafaiの場合はhttpにリダイレクトしています。
それ以外のWebブラウザでhttpアクセスの場合はhttpsにリダイレクトしています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1