[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

[mac] Chrome Remote DesktopがつながらないのはESETの設定でした

久しぶりにChrome Remote Desktopを使おうとしたら相手先に接続できませんでした
「リモートのパソコンにアクセスできません」と表示されます

chrome remote desktopのエラー

前に接続できたときからいろいろ環境変わってるからなあ・・・
そういえばChromeアプリ版が廃止されてオンライン版になってから初めての利用な気がします
そのせいかな?

ということで原因を調べてみました
ネットワークの設定が原因と言ってますが、別のPC(chromebook)からは問題なく繋がるのでルーターはシロです
そうなるとmac内のファイアウォールが怪しい

ESET Cyber Security Pro

結論から言うと犯人(?)は導入しているウイルス対策ソフト「ESET Cyber Security Pro」でした

設定>パーソナルファイアウォールから
設定を選んで
ファイアウォールの設定画面

ここでフィルタリングモードを対話モードにしてそれっぽい通信を探してみた結果が、その下にあるChrome Helperの通信です
こちらを許可することでRemote Desktopも無事接続できるようになりました

今回設定した内容は以下のとおりです
パスにバージョンナンバーがあるからchromeをバージョンアップしたらまた設定やりなおし・・・?
バージョンナンバーはCurrentに設定しても大丈夫でした!
これならchromeのバージョンアップにも追随してくれそう

アプリケーション/Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/Versions/Current/Helpers/Google Chrome Helper.app
アクション許可
方向両方
プロトコルTCP & UDP
ポートリモート
リモートポートすべて
宛先インターネット全体

[mac] PDFをHTMLにする

上から、PDFをHTMLにしてサイトに掲載してくれという依頼が来ました
見た目はそのまま再現できればそれがベストだそうです
正直、個人としてはその作業の意図がわかりません😓

Google は 2001 年に PDF ファイルのインデックス登録を開始(英語)し、現在では 数億件もの PDF ファイルがインデックスに登録されています。

検索結果における PDF ファイルの取り扱いについてのヒント

PDFのまま載せたってインデックスしてもらえるのに、html化するメリットがなんかあるの?

・・・そう思いながらも、理屈を納得してもらうよりはやってしまったほうが早そうなので、言われたとおりのことをやってみました

pdf2htmlEX

調べてみたら pdf2htmlEXというものがありました

pdf2htmlEX

サンプルを見てみると出来がすごい!

でもブログの最終更新は”Looking for new maintainer
そのメッセージどおりGitHubレポジトリはアーカイブされていました
今はこちらでメンテナンスされているのかな?(バージョンは0.14.6のまま変わってないようだけど…)

ともあれインストールはhomebrewにformulaがあったので簡単でした

$ brew install pdf2htmlex

変換の実験してみます
こちらからサンプリファイルを拝借しました

元PDFファイル: sample-pdf.pdf

変換してみます
–embedの部分はそれぞれ

CCSS
Ffont
Iimage
JJavaScript
Ooutline

を意味していて、大文字だとそれをembed(HTMLに埋め込み。画像などはbase64エンコードで埋め込まれる)、小文字だと外部ファイルにする、という設定です
ひとつのhtmlファイルで完結したい場合なんかは全部embedしてしまえばいいわけですね
もうひとつの–fit-widthは幅を何pxにするか、になります

$ pdf2htmlEX --embed cfijo --fit-width 1024 sample-pdf.pdf sample-pdf.html

出力結果HTML: sample-pdf.html

ソースにいくらかクセはあるけども(サンプルテキストのところなんか文章が細切れにspanで分割されている)、見た目は完全に再現されました!