55999


以下のように特定のサイト( <https://xml.irpocket.com> )に`HTTPS`で接続しようとすると`unable to get
local issuer certificate`エラーが出ます。

[code]

    require 'net/https'
    url = URI('https://xml.irpocket.com')
    Net::HTTP.get(url)
    #=> OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)
    from /Users/ironsand/.rbenv/versions/2.5.5/lib/ruby/2.5.0/net/protocol.rb:44:in `connect_nonblock'
    
[/code]

ですが <https://google.co.jp> など他のSSL接続を使用してるサイトではエラーなく正常にページが取得されます。

「ローカルの証明書が取得できない」というエラーなら接続先を変更してもエラー内容は変わらないはずだと思うのですが、このような動作になるのは何が原因なんでしょうか？


CC BY-SA 4.0
2019-06-21T10:36:21.343
55975
2019-06-22T02:42:30.947
3271
question
ruby ssl https
特定のサイトにSSLで接続する場合だけ "unable to get local issuer certificate"が出る


`nslookup xml.irpocket.com`をしたところIPアドレスが３つ返ってきました。  
3台にたいして`openssl s_client -connect <address>:443`で確認したところ、

ある１台

[code]

    depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
    verify return:1
    depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority
    verify return:1
    depth=1 C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA
    verify return:1
    depth=0 OU = Domain Control Validated, OU = PositiveSSL Multi-Domain, CN = irpocket.com
    verify return:1
    read:errno=10093
    
[/code]

残り２台

[code]

    depth=0 OU = Domain Control Validated, OU = PositiveSSL Multi-Domain, CN = irpocket.com
    verify error:num=20:unable to get local issuer certificate
    verify return:1
    depth=0 OU = Domain Control Validated, OU = PositiveSSL Multi-Domain, CN = irpocket.com
    verify error:num=21:unable to verify the first certificate
    verify return:1
    read:errno=10093
    
[/code]

という結果が得られました。当該サイトはサーバーローカルに設定されている証明書に問題があるのかもしれません。


CC BY-SA 4.0
2019-06-22T02:42:30.947
55999
2019-06-22T02:42:30.947
4236
55975
answer