[AWS] safariで NSPOSIXErrorDomain:100 というエラーが出ちゃっていることへの対処

すごく久々な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