2016-07-22 10 views
1

SSL_ca_path sslオプションは信頼性が高いため、使用したいと考えています。問題は、指定されたディレクトリの証明書を使用しないことです。SSL_ca_path with IO :: Socket :: SSLはディレクトリ内の証明書を使用しません

このコードは動作します:

local $NET::HTTPS::SSL_SOCKET_CLASS = 'IO::Socket::SSL'; 
    my $ua = LWP::UserAgent->new(ssl_opts => { 
    SSL_ca_file => "/etc/pki/tls/certs/ca-bundle.crt", 
    # SSL_ca_path => "/etc/pki/tls/certs/", 
    }); 

しかしSSL_ca_path代わりSSL_ca_fileの休憩スクリプトを使用しました。 *.pemに証明書の名前を変更することも、パスの末尾に/を取り除くどちら

local $NET::HTTPS::SSL_SOCKET_CLASS = 'IO::Socket::SSL'; 
    my $ua = LWP::UserAgent->new(ssl_opts => { 
    # SSL_ca_file => "/etc/pki/tls/certs/ca-bundle.crt", 
    SSL_ca_path => "/etc/pki/tls/certs/", 
    }); 

を働いていない

は、問題を修正します。

パーミッションとディレクトリの所有者とファイルがある同じ(770)

完全なスクリプト:https://github.com/Benedikt1992/nagios-jenkins-plugin/blob/master/check_jenkins_job_extended.pl#L71-L75

答えて

3

IO ::ソケットで使用されるTLS実装でのOpenSSLで使用する証明書ディレクトリ(: :SSL)は、ファイル名が証明書サブジェクトのハッシュに基づく特定の構造を持つ必要があります。つまり、証明書をディレクトリにドロップするだけでは不十分です。

lrwxrwxrwx 1 root root  41 Feb 25 10:19 f30dd6ad.0 -> USERTrust_ECC_Certification_Authority.pem 
lrwxrwxrwx 1 root root  34 Feb 25 10:19 f3377b1b.0 -> Security_Communication_Root_CA.pem 

詳細についてはthe openssl documentationを参照して、名前のために使用するハッシュの計算は、異なるバージョンのために異なる可能性があることに注意してください:あなたは(Ubuntuの/etc/ssl/certsから取られた)次の構造があります。例えば

OpenSSL。

関連する問題