すごく久々なblog投稿です。
世間では新型コロナウイルスで大変なことになっていますが、ありがたいことに自分は昔からのテレワーカーで、そこまで大きな影響を受けずにやっております。
今回は、awsを使っているサーバにmacのsafariでアクセスした際に、
NSPOSIXErrorDomain:100
というエラーが出てしまったので、その対処法のメモです。
まずぱっと調べたら下記ページを見つけました
iOS 11, macOS Hight Sierra で The operation couldn’t be completed. Protocol error が出る場合の対処
たしかに今回問題を起こした環境はELBを置いたEC2という構成の環境だったのでこれに当てはまりそうです。
ここでの情報通りにHTTP/2を無効化したら問題が解決できることも確認できました。
でも・・・HTTP/2を無効化することに、ちょっとそれでいいのか?感があったので、もう少し調べてみました。
で、見つけたのがこちら
AmazonLinux2のhttpdをALB経由で公開するWeb環境で発生していた、SafariのHTTPS接続エラーを改善してみた
うん、確かにうちの環境もAmazon Linux 2ですので、まさにこれっぽい。
情報通りに、/etc/httpd/conf.modules.d/10-h2.conf の中のLoadModuleをコメントアウトで無効化します
/etc/httpd/conf.modules.d/10-h2.conf
# LoadModule http2_module modules/mod_http2.so
設定変更したらapache再起動
最初の対策で無効化していたELBのHTTP/2も有効に戻します
safariでチェックをしてみたところ、エラーを出すこと無くアクセスできるようになりました。
おまけ
参考サイトではKeepAlive設定にも言及していました
設定していなかったのでこちらも推奨通りに設定しました
/etc/httpd/conf.d/keepalive.conf
KeepAlive On KeepAliveTimeout 120