- ベストアンサー
HTTPSのサイトからのダウンロード方法
- HTTPSのサイトにアクセスしてブラウザではなくテキストで表示させる方法について教えてください。
- HTTPのサイトでは正常に表示できるコードですが、HTTPSのサイトでは動作しません。
- 現在アクセスしようとしているページはユーザー名とパスワードを必要としません。ブラウザで表示すれば問題ありません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
VBの開発環境がないので再現できないので、 下記の件をお答えします >”HttpWebRequest を使用したクライアント認証を行うには、現在のユーザーの個人用証明書ストアにクライアント証明書がインストールされている必要があります。” IEにクライアント証明書をインストールした覚えがなければ利用していないはずです 確認するにはIEのメニューから「インターネットオプション」-「コンテンツ」-「証明書」-「個人」 に証明書があるか無いか確認してください 無い場合、IEはhttpsにおいてクライアント証明書を送信せずに通信を完了しています あと、サーバ側でクライアント証明書を必要としているかは、 HTTPサーバがapacheであれば、 SSL設定ファイルの SSLVerifyClient require となっているはずですが、 デフォルトではnoneのはずです。
その他の回答 (2)
>「証明書」-「個人」 自動で登録はされないので、システム管理者等(会社で利用しているPCならば)が入れたと思われます 証明書があるのであれば、 >”HttpWebRequest を使用したクライアント認証を行うには、現在のユーザーの個人用証明書ストアにクライアント証明書がインストールされている必要があります。” の件で、 この証明書を読み込むようコーディングすれば、参照できなかったURLにアクセスできるようになるかと。
お礼
回答ありがとうございました。 たいへん参考になりました。 また、機会があったらよろしくお願いします。
マイクロソフトの下記のページでHTTPS接続できない不具合と対処があるようですが、 コレに該当しておりませんか?
補足
回答ありがとうございます。 参考のページを確認させてもらいましたが、このページでは.NET Framework 1.1対象となっていましたが、現在私が使っているのはVB2008なので3.5です。 ですから少なくともこのページで報告されている現象はクリアされていると思うのですがどうでしょうか? この「HttpWebRequest」の説明をmsdnでみると次のような説明がありました。 ” HttpWebRequest コンストラクタは使用しないでください。新しい HttpWebRequest オブジェクトを初期化するには、WebRequest..::.Create メソッドを使用します。URI (Uniform Resource Identifier) のスキームが http:// または https:// の場合、 Create は HttpWebRequest オブジェクトを返します。” ということはhttpsのサイトでも動作すると思うのですが... また、こんな文章もありました。 ”HttpWebRequest を使用したクライアント認証を行うには、現在のユーザーの個人用証明書ストアにクライアント証明書がインストールされている必要があります。” これって対象のサイトからの クライアント証明書なるものが必要ということでしょうか? ただ、IEで対象のサイトにアクセスできるということは少なくともIEではその証明書を利用しているということだと思います。 その証明書ファイルの置き場所が問題なのでしょうか? もし、わかるようでしたらお願いします。
補足
回答ありがとうございます。 最初にHTTPSのサイトからダウンロードできないと書きましたが、その後色々試してみると同じHTTPSのサイトでも最初のコードでダウンロードできるサイトもあることがわかりました。 今回はこのアクセスできるサイトで試してみたいとおもいます。 色々教えていただいてありがとうございました。 最後にクライアント証明書について教えていただきたいのですが「証明書」-「個人」には発行先、発行者とも私の名前が書かれたもの1件のみでした。 「信頼された証明機関」のタブにはたくさんの証明書が登録されていました。 これはIEが自動的に取得した証明書が収められているのでしょうか? また、IE以外のアプリでもこの証明書を利用できるのでしょうか? もし、ご存知なら教えて下さい。