認証ありProxy環境でログインできない

バグ報告

認証ありProxy環境でログインできない

ログインしようとすると、エラーが発生しログインできません。
squid(Proxyサーバ)及びパケットキャプチャの内容から、inkdropの起動時の通信で
Proxy-Authorizationヘッダが付与されていないようです。
squid側には、407 Proxy Authentication Requiredのログが出ています。
また、起動後にLOG INボタンの押下時には、HTTPSのセッションが張れていない状態で
GETメソッドを利用しているため、Squidが今回のエラーレスポンスを返しているのだとと思われます。
ちなみにLOG INボタンの押下時のリクエストでは、Proxy-Authorizationヘッダは付与されています。
3.24.0のバージョンではこの問題は再現せず、問題なく利用できます。

Error message:
Request failed with status code 501

Response data:(一部)

<p>The following error was encountered while trying to retrieve the URL: <a href="https://api.inkdrop.app/account?">https://api.inkdrop.app/account?</a></p>

<blockquote id="error">
<p><b>Unsupported Request Method and Protocol</b></p>
</blockquote>

<p>Squid does not support all request methods for all access protocols. For example, you can not POST a Gopher request.</p>

利用環境

  • Platform: Windows
  • Platform version: 10
  • App Version: 3.25.4

再現方法

環境:PC -> squid(basic認証) -> inkdrop
config.csonのファイル内のhttp_proxy, https_proxyは設定しています。

kenjiさん

こんにちは。
ご報告ありがとうございます。
こちらと関連する問題だと思われます:

スレッド中の以下のパッチを試してみてください:

squidでSSLを有効にしている場合は、TLS1.2以降に対応しているか併せてご確認ください。

ご返信ありがとうございます。試したところ下記のエラーとなりました。
Error message:
write EPROTO 28612:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\projects\electron\vendor\node\deps\openssl\openssl\ssl\record\ssl3_record.c:252:

squidはTSL1.2に対応している認識です。

そのエラーはSSL handshakeに失敗している事が原因です。
wrong version が示すとおり、対応SSLバージョンの不一致です。
3.25.0にてElectronのバージョンを@3に上げており、それに伴い古いTLSのサポートがdeprecatedになりました。
つまり3.24.0 からアプリを更新した事によってSSL handshakeエラーが発生するようになったという事実から推察するに、原因はsquidが古いTLSを使用している事だと思われます。

関連スレッド:

お使いのsquidやwindows環境起因のため、僕の手元ではサポートが難しい問題です。
この問題についての僕の考えは上記スレッドで一通りやりとりした通りです。
そちらを参考に原因を調べてみてください。

以下補足

v3.25.4にて使用している axios@0.19.0-beta.1 でこの問題は解消したとの報告をGitHubで見たので試しに使ってみたのですが、おそらくその報告が間違っていたように思われます。
冒頭で頂いたご報告の通り、不安定で別の問題を抱えているようです。
0.18に戻そうと思います。