FurlでオレオレSSLを突破する。

もはやLet’s Encryptとか使えばいいんで、オレオレ証明書を作成する必要があるのかわかりませんが、とあるテスト環境がどうやらオレオレ証明書を使っているらしく、FurlでAPIを叩こうと思ったら、

Cannot create SSL connection: SSL connect attempt failed error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

なんてエラーが出てAPIにアクセスができない。

FurlのオプションにSSL_verify_modeってのがあるので、そいつを0にしてやると、オレオレ証明書を突破できるぽい。

use Furl;
use IO::Socket::SSL;

my $furl = Furl->new(
    ssl_opts => {
        SSL_verify_mode => 0,
    },
);

もちろん本番環境は、オレオレ証明書じゃないので、テスト環境にアクセスする時だけこのオプションが効く感じで。