Oracle vs proxy vs SSH

Oracleのクライアントアプリで、新たな問題。

多少は、今日は時間がある。昨日ハマった問題の原因を、色々とググっては見ても、同じ問題にハマった人がいない。これはもう、だふしませふか。

アプリが、エラーを吐いた。Oracle.ManagedDataAccessに関連するファイルが見つからない、欠けているとか、怒られた。Oracle Instant Clientのodbc_setupは特に問題なく動作完了。何が悪い?

試行錯誤に相当な時間を潰した挙句、思いついた案。開発機では完全に動作して、テストも済ませている。開発機と、納入機の最大の違いは、Visual Studioの開発環境があるか、ないか。開発機では、Visual StudioのNuGet経由でOracle.ManagedDataAccessのパッケージを組み込んだ。同じことを納入機でもやれば、この問題は開発するんじゃないか、と。

で、まず、Visual Studioのインストーラをインストールし、次にC#のVisual Studioの環境を構築し、まずは空のダミーアプリを作り、そこから、ツール → NuGetのパッケージ管理へ進み、Oracle.ManagedDataAccessを検索させた。そうしたらproxyからエラーが返された。proxyが言うには、 NuGet.orgのhttpsの証明書が不正だ、と。こんな不審なモジュールを、イントラネットに流すわけにはいかん、だと?

実を言えば、同じエラーを僕も吐かれている。このサイトにhttpsでアクセスすると、不正だと怒られる。サーバの管理会社に、認証鍵の更新のために連絡を取ったら、古い鍵を送られてしまい、それ以来、なにがどうおかしくなったのか、「やり直し」でも認証エラーが出る。自分でサーバ設定できないから、もう連絡してもラチが空かないし、VPS(Virtual Private Server)にサーバ引っ越しの準備をしているのだけれど、もう、他人が構築した環境の上でアプリは走らせたくない。その引っ越し先のメールサーバの設定にひどく手こずって、もう1年も放置状態に近い。自社サイトなんて、一番優先度が低いから、手を出してる暇がない。結果、「不正な証明書」を放置。みっともないですけどね。バンバンに、「不正な証明書」のエラーを出してますよ。確かに私も。

ただ、NuGet.orgとか、頼むから、proxyが騒ぐような認証鍵の管理はやめて欲しいなぁ。日本国内で認証局を立てられるようになったのは、ごく最近。(情報「超」後進国だ。)サーバを運営している会社でも、認証の話になると訳のわからない返事が返って来たりするし、正直言えば、ネットのクレジット決済だってあんまりしたくない。

そのproxy。ノートだったら、自前のスマホのテザリングで、ネット接続して、迂回させられるんだけれども、ガッチリとイントラネットに組み込まれているシステムだから、もう、手も足も出ない。煮詰まった。他の解決策も思いつかない。

直接の原因はOracle(たぶん、クライアント環境のインストーラ)だけれども、NuGetなどのパッケージ管理の組織など、頼むから、「不正な証明書です」なんてエラーを出すような設定はやめて欲しいなぁ、なんて思う。

偉そうなことは言えない。このサイトがそうだけれども、公開鍵のカバーする範囲の設定(認証局のサービス料金の違いによる、のか)によっては、他の、結構有名な企業のサイトでも「不正な証明書」の警告は見かける。たぶん、有効期限の更新を忘れたとか、そんなところ、なんだろうかなぁ。(引っ越し先のサーバは、松尾くんが自己認証の方法を見つけて来てくれて、cronで更新をかける方法に成功。早く引っ越ししたいのだが・・・)

それにしても、proxyがなぁ・・・ダメだ、突破口が見つからん。納入先にお願いして、proxyに一時的に穴を開けてもらうとか・・・自力での解決策は、もう枯渇。そもそもは、NuGetの「不正な証明書」が原因なんだが。

このトラブルで納入が遅れてるの、俺の責任じゃねぇぞ、と、声を大にして言いたいが、結果が全てか。情けねぇ。

Oracle。嫌いだけど、お客様が使ってるから、アクセスするしかない。ずいぶん昔、Oracle絡みの仕事の話があって、開発用に最も安い環境を整備できないか問い合わせたら、50万円とか言われた。当然、そんな仕事はお断り。ところが、松尾くんが言うには「無料で試せる環境がありますよ。」嘘!時代は変わった。

Microsoft。C#を使ってるのは、外部アプリとの接続の都合。Microsoftも、実を言えば、あまり好きじゃない。Windowsのバージョンが変わるたびに、APIの解説書を揃えないと仕事にならない。それが一式10万円とか20万円とか。私が作るアプリの値段よりも高い。(かなり安めな設定なのに、医者とかいう人種は平気で「タダにしろ」とか言ってくる。あんなクソ高い医学部の授業料を払うほど経済的に余裕があるなら、タダで患者を診たらどうだ、と言いたかったけど。)それにしても、Microsoft。ユーザとしても何かと金を毟り取られる感が半端なかったのに、開発屋からも何十万と金を毟るのは、やめてくれ、という根深いMicrosoft嫌いの原体験がある。

今回は、VBとC#とVC++が、あちこちに混在。(私のオリジナルではなく、元々の開発者が今メンテできないから私に流れて来た仕事。)VBもC#もVC++も、きちんと読んで書いてるけど、実を言えば、あんまり好きじゃない。

最近は、「課金」の流れで「ソフトはタダだ」という誤った認識が広まってるのか、そりゃぁ、数万人/数十万人が使うことを想定したソフトなら、数百円の価格設定や、毎回数百円の課金でもビジネスは成立するけれど、一社しか使わないソフトの値段を似たようなモノだと思う、その認識だけは改めて欲しいと願っているが、「作る側」でない人たちは、その違いすら考えてくれない。やたらと値段が高い世界から、急速に「無料」になってきて、その「悪いところ」だけ影響を受けてる気がしてならない。

OracleもMicrosoftも、とにかく、金を毟られる感じが半端なかった、なんていう「昔話」を、今の若い人たちに(出た、このフレーズ、ジジイの証)しても、「無料が当たり前じゃないんですか」的にスルーされそうだなぁ。金取るんですか、って、慈善事業じゃないんだから・・・

それはいい。そこはもう、いいから、お願いだから、SSHでサービスを立ててる方たち、認証鍵の更新は忘れずにお願いしたい。あたしゃもう、疲れて、脳味噌が干上がりかけてる気がする。