Proxy経由のログインに失敗する(ようになった)

バグ報告

下記の利用環境でログイン認証時にエラーとなり、ログインできません。

Client network socket disconnected before secure TLS connection was established

利用環境

  • Platform: Windows
  • Platform version: 10
  • App Version: 3.25.2(インストーラ版)

再現方法など

  1. Inkdrop起動(config.cson で http_proxy, https_proxy を設定している状態)
  2. EMAIL ADDRESS と PASSWORD を入力して LOG IN を押下
  3. 上記エラーとなりログインできない

補足

3.25.2 を使用している際に、他のデバイスとデータ同期されていないことに気付き、とりあえず一旦ログアウトして再ログインしようとしたら上記エラーになりました。3.25.2 へアップデートする前は 3.24.0 を使用しており、3.24.0では上記エラーは発生していませんでした。

試しに手元に残っていた 3.24.0 のインストーラで、3.25.2 から 3.24.0 に戻したところ上記エラーなしで無事ログインでき、データ同期もされました。

そこからもう一度 3.25.2 へアップデートしてみたら上記エラーが再現しました。

3.24.0 と 3.25.2 いずれも同一の config.cson ファイルを参照しています。

Nobumiさん

ご報告ありがとうございます。
ネットワークのライブラリバージョンを更新した事が原因と思われます。
次のバージョンで修正したいと思います。
ひとまず以下から v3.24.0 をお使いください:

https://d3ip0rje8grhnl.cloudfront.net/v3.24.0/Inkdrop-3.24.0-Windows.zip

@Nobumi_Noro さん

一つ確認なのですが、プロキシサーバの証明書は自己署名でしょうか?
もし自己署名であれば、 NODE_TLS_REJECT_UNAUTHORIZED=0 を環境変数に設定して実行してみてください

@craftzdog さん

証明書はおそらくそうです。

職場のプロキシサーバを使用しています。
そのインフラ・ネットワーク・セキュリティ対策等については専門部門管理のため、「職場のプロキシサーバを、ユーザ認証(ID・パスワード)あり、で使っています」程度しかお伝えできません。

また、

NODE_TLS_REJECT_UNAUTHORIZED=0

を試してみましたが、結果は変わらずでした。
(ユーザアカウントの環境変数、システムの環境変数、ともに試してみました)

いくつか修正したものをビルドしました。お試し下さい:

https://s3-ap-northeast-1.amazonaws.com/inkdrop-dist/tmp/Inkdrop-3.25.2-Windows-patch-1.zip

1点目はバグ修正です。データベースの同期リクエストがプロキシを経由しない問題を修正しました。
2点目は証明書バリデーションの設定追加です。設定から証明書を検証しないように指定出来るようにしました。config.csonに以下のように設定を記述します:

"*":
  core:
    network:
      http_proxy: "***"
      https_proxy: "***"
      strict_ssl: 0

strict_ssl: 0 を指定することによって、内部で NODE_TLS_REJECT_UNAUTHORIZED=0 が設定されます。
こちらの設定をお試し下さい。
もしそれでも上手く動かない場合は、他の原因の可能性があります。

patch-1 と config.cson への記述を試してみましたが、エラーは解消されませんでした。

ご報告ありがとうございます。
では、原因は自己署名ではなさそうです。

Client network socket disconnected before secure TLS connection was established

こちらのエラー文を調べてみたのですが、 node@10 から発生しているもののように見えます。
そしてこのスレッドを読んでみると、どうやらobsoleteなTLS 1.0を使っているサーバで発生しているようです。
その理由は、node@10からTLS 1.0が非対応になったからのようです。
v3.25.0からElectronのバージョンを上げるに伴い、nodeも10になりました。
それが原因だと推測します。

お手数ですが、そちらのプロキシサーバが古いTLS 1.0を使っていないかご確認いただけますでしょうか?
もしその場合、残念ながらアプリ側からの対応は難しいです。
そちらのセキュリティ管理部門に環境のアップデートをご依頼頂きますようお願いいたします。

諸々、承知しました。

回答いただきましたとおり、こちら側の環境に起因する事象と思われますが、担当部門へ確認するのもこれまた少し厄介なため(クラウドサービス使うな的な^^;)、しばらく様子見したく思います。

お手数おかけしました!

なるほど、企業内では規則が厳しいですよね。。
Inkdropは自前でCouchDBサーバを立てて使うことも出来ますので、よろしければご検討下さい:

https://docs.inkdrop.app/manual/synchronizing-in-the-cloud

Nobumiさんのお陰で同期リクエストのバグを見つけることが出来ました。ありがとうございました!
一旦この件は解決済みとしたいと思います。
また何かございましたらご連絡ください。