Xサーバーで日本語ドメイン+SSLなURLが接続できない件

sirius2wpの「債務整理」サイトで実証実験で02setup.cgiが500エラーになる件。

01startup.cgiは動いたので、ここでCGIが動かないわけじゃない。
SIRIUSからアップロードしてみたからそれが悪かったのかと思ったけど、そうでもない。

UTF-8だったし、BOMは入ってないみたいだし。

ローカルのPythonサーバーでも、問題になるようなところはない。
500エラーなので、まともに動いてない感じのはず。

でも「夫の浮気」では動くし、準備作業のミスを再確認するけど大丈夫そうだし、単にコードの問題じゃなく、やっぱり「債務整理」サイトの問題と断定。

日本語ドメインが悪い?
怪しいのはWordPressからユーザーIDを取得するところ。

PCのコマンドプロンプトでPython起動して、ソースと同じ用に日本語ドメインをPunycodeしたURLでWordPressへアクセスしたら、問題なくユーザーIDは取得できた。

ということで仕方なく、CGIのソースを削りながら少しずつ動かしていくデバッグするしかない。

そしたら、やっぱりWordPressにユーザーIDを取得するところでエラーになっていた。

urllib.urlopen()の中の、SSL関連の処理で『「借金解決したい.xyz」とPunycodeの「xn--n8jubya4263a9v3ax4zb8ul.xyz」が一致しない』とエラーになっている。

いやいや、「借金解決したい.xyz」のままで比較しちゃアカンだろ…って、バグじゃないか?と思えるエラーだった。

でもPCからは問題なく接続できたのに?って、TeraTermをインストールしてXサーバーにSSH接続して、PCと同じ用にPythonスクリプトから実行しても同じエラーに。なのでCGIの問題じゃなく、XサーバーのPythonの問題。

バージョンを確認したら、XサーバーのPythonはバージョン3.6.x、PCのは3.8.3。
PCのバージョンまでにバグFixされたのね。

ってことで、これはXサーバーのPython(バージョン)で日本語ドメインでSSLを使ったときの問題。

仕方がないので、CGIからユーザーIDを取得するするときは、httpsじゃなくhttpで接続することにした。httpsでなくても問題なく取得できるみたいなので。

まったく、Xサーバーも新しいPython入れてくれればいいのに!って話でした。

タイトルとURLをコピーしました