質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

解決済

2回答

9425閲覧

perlのLWP通信にて、一部のサイトに対するhttps通信が失敗する

chun

総合スコア324

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

0グッド

1クリップ

投稿2017/05/19 00:28

###前提・実現したいこと
perlのLWPを用いて、https通信にてwebサーバーよりデータを取得しています。
ところがここ最近、一部のサイトに対するhttps接続が失敗するようになりました。
ネットを調べると、IPv6に対応したサイトで接続できない問題があることを突き止めましたが、最も簡単なソースで接続してみると接続できているので、この問題は既に解決しているように思います。
そこで、何かのモジュールが悪さをしているのではないかと、使用しているモジュールをひとつひとつ追加しながら確認すると、
Net::SMTP::SSL;
Net::SMTP::TLS;
の2つのモジュールをコメントアウトすると、通信できることを突き止めました。
しかし、これらのモジュールは、gmailを使ってメールを送信する時に認証に利用しているため、
これらのモジュールを利用したまま、httpsの通信が行えるようになるか、gmailに対する認証を、これら以外の方法で実現する方法を探しています。

###発生している問題・エラーメッセージ

500 Can't connect to www.google.co.jp:443 (connect: Network is unreachable)

###該当のソースコード

perl

1#!/usr/bin/perl 2use strict; 3use utf8; 4use LWP::UserAgent; 5use HTTP::Request; 6use HTTP::Cookies; 7use HTTP::Response; 8use Net::SMTP; 9use Net::SMTP::SSL; 10use Net::SMTP::TLS; 11 12my $url='https://www.google.co.jp/'; 13my $ua=LWP::UserAgent->new; 14my $req=HTTP::Request->new('GET' => $url); 15my $res=$ua->request($req); 16print $res->as_string;

###試したこと
上記ソースの
use Net::SMTP::SSL;
use Net::SMTP::TLS;
をコメントアウトすると通信できます。

###補足情報(言語/FW/ツール等のバージョンなど)
Scientific Linux release 6.6 (Carbon)
perl 5.10.1 x86_64-linux-thread-multi
ソースコンパイルで入れたものはありません。
全てyumにて公式またはrpmforge、epelのいずれかから入れています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

SL6に標準で入っているIO::Socket::SSLとNet::SSLeayが原因でした。
以下のモジュールをCPANからダウンロードし、
cpan2rpmでrpm化し、
ローカルリポジトリにupし、
yum updateする事で解決しました。

IO::Socket::SSL 1.31-2 → 2.048-1
Net::SSLeay 1.35-9 → 1.81-1
Net::SMTP::SSL 1.01-4 → 1.04-1
(たぶん、Net::SMTP::SSLはupdate不要)

投稿2017/05/25 05:13

chun

総合スコア324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

500 Can't connect to www.google.co.jp:443 (connect: Network is unreachable) というエラーに対処する方法が、以下のページで議論されています。参考になるのではないでしょうか? (英語です)

Failed to connect to www.googleapis.com port 443: Network unreachable

投稿2017/05/19 00:43

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chun

2017/05/19 01:30 編集

回答ありがとうございます。 このページは既に読みました。 LWP以外の手段で逃げると言う方法も検討材料ではありますが、 影響範囲が広いので、LWPを使用しつつ問題を回避する方法を探しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問