Armadilloフォーラム

gem installにてssl認証エラーが出る

y-ogura

2022年5月17日 10時18分

お世話になっております。
G3にて購入後rubyのgemであるserialportをインストールしようと思いましたが、下記のようにエラーが出てしまいます。

ERROR:  SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR:  You must add /OU=GlobalSign Root CA - R3/O=GlobalSign/CN=GlobalSign to your local trusted store
ERROR:  SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR:  You must add /OU=GlobalSign Root CA - R3/O=GlobalSign/CN=GlobalSign to your local trusted store
ERROR:  SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR:  You must add /OU=GlobalSign Root CA - R3/O=GlobalSign/CN=GlobalSign to your local trusted store
ERROR:  Could not find a valid gem 'serialport' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate) (https://api.rubygems.org/specs.4.8.gz)
ERROR:  SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR:  You must add /OU=GlobalSign Root CA - R3/O=GlobalSign/CN=GlobalSign to your local trusted store
ERROR:  SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR:  You must add /OU=GlobalSign Root CA - R3/O=GlobalSign/CN=GlobalSign to your local trusted store

下記コマンドにてrubyが使用している証明書の場所?も調べて/usr/lib/ssl/の下にcert.pemはなかったので、
https://curl.haxx.se/ca/cacert.pem を持ってきてcert.pemへ改名して置いてみたりしましたが、上記エラーに変化はございませんでした。

root@armadillo:/# ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_F'
"/usr/lib/ssl/cert.pem"
コメント

at_dominique.m…

2022年5月17日 11時05分

y-oguraさん、

openssl か ca-certificates のパッケージに問題あるかもしれないですね。

「gem install」を実行する時に https://api.rubygems.org に接続しようとしてますが、今回はなぜか確認を取れないですね。

本来であれば、以下のファイルを通って確認取りますが、y-oguraさんの armadillo にこのファイルが存在しますでしょうか?

# ls -l /usr/lib/ssl/certs/062cdee6.0 
lrwxrwxrwx 1 root root 27 May 17 01:51 /usr/lib/ssl/certs/062cdee6.0 -> GlobalSign_Root_CA_-_R3.pem
# ls -l /usr/lib/ssl/certs/GlobalSign_Root_CA_-_R3.pem
lrwxrwxrwx 1 root root 62 May 17 01:51 /usr/lib/ssl/certs/GlobalSign_Root_CA_-_R3.pem -> /usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt
# ls -l /usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt
-rw-r--r-- 1 root root 1229 Jan 28  2021 /usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt

無ければ 「apt install --reinstall ca-certificates」と「update-ca-certificates」の二つのコマンドで再作成できると思いますが、他の問題もあるかもしれませんのでインストールディスクを使って初期化した方がいいかもしれません。
https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g3… から取得できます。

ファイルがあれば、別の問題がありますが今のログでは理由が分かりません。 「openssl s_client -connect api.rubygems.org:443」の出力をお願いできますか?

よろしくお願いします。

回答ありがとうございます。
ファイル3種探してみましたが、下記ファイルのみございませんでした。
/usr/lib/ssl/certs/062cdee6.0

> 無ければ 「apt install --reinstall ca-certificates」と「update-ca-certificates」の二つのコマンドで再作成できると思いますが、他の問題もあるかもしれませんのでインストールディスクを使って初期化した方がいいかもしれません。

コマンド実行いたしましたが変わらず062cdee6.0 のみございません。
同ロットにて複数台購入しており、現状2台確認を行っていますが、どちらも同じ状況です。
初期化も検討いたします。

> ファイルがあれば、別の問題がありますが今のログでは理由が分かりません。 「openssl s_client -connect api.rubygems.org:443」の出力をお願いできますか?

下記出力結果です。

CONNECTED(00000003)
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign Atlas R3 DV TLS CA 2022 Q1
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = rubygems.org
verify return:1
---
Certificate chain
 0 s:CN = rubygems.org
   i:C = BE, O = GlobalSign nv-sa, CN = GlobalSign Atlas R3 DV TLS CA 2022 Q1
 1 s:C = BE, O = GlobalSign nv-sa, CN = GlobalSign Atlas R3 DV TLS CA 2022 Q1
   i:OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGlzCCBX+gAwIBAgIQAepzfnTt3xyCryC/f8qk0zANBgkqhkiG9w0BAQsFADBY
MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEuMCwGA1UE
AxMlR2xvYmFsU2lnbiBBdGxhcyBSMyBEViBUTFMgQ0EgMjAyMiBRMTAeFw0yMjAx
MjIxNjQ1MThaFw0yMzAyMjMxNjQ1MTdaMBcxFTATBgNVBAMMDHJ1YnlnZW1zLm9y
ZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMRONlqzZpNpjgCT+Lp
zEHaGTadgBHQWkO6Rib/sq+jyzihviCr2b64yBC6T5vsPmFMe0F7w0l4pAdnZd3A
LJbL31EGb2LHuvouO4B82EW1OFO01OfETuCtOAOxBSKb3eT03HX4hOIj0eQagq8P
rZFnj1Wd0MkU0xZUdQaBqhj9xk6S64IAcOsElMfw5YKgyk7knttrFQi2BIocrcMk
6E4p1xdjwgFM8urUQII2t7PQgVCocgxHY2SHNiGGwNY1GvuFK/80F0o0mv70sh2k
R9ji5PhQ0BR2+C02u2xd75a6f/NHKwEl+0mC5FQIJr009sa1o/iZZbxrFol3mLSY
61MCAwEAAaOCA5wwggOYMFUGA1UdEQROMEyCDHJ1YnlnZW1zLm9yZ4IOKi5ydWJ5
Z2Vtcy5vcmeCFiouc3RhZ2luZy5ydWJ5Z2Vtcy5vcmeCFHN0YWdpbmcucnVieWdl
bXMub3JnMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB
BQUHAwIwHQYDVR0OBBYEFCvMGaiBpmUH9dDcIodG6t11pByzMFcGA1UdIARQME4w
CAYGZ4EMAQIBMEIGCisGAQQBoDIKAQMwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93
d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wDAYDVR0TAQH/BAIwADCBngYI
KwYBBQUHAQEEgZEwgY4wQAYIKwYBBQUHMAGGNGh0dHA6Ly9vY3NwLmdsb2JhbHNp
Z24uY29tL2NhL2dzYXRsYXNyM2R2dGxzY2EyMDIycTEwSgYIKwYBBQUHMAKGPmh0
dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dzYXRsYXNyM2R2dGxz
Y2EyMDIycTEuY3J0MB8GA1UdIwQYMBaAFJwqZ9C0gzFbgMspllV1CTc4uDylMEgG
A1UdHwRBMD8wPaA7oDmGN2h0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vY2EvZ3Nh
dGxhc3IzZHZ0bHNjYTIwMjJxMS5jcmwwggF8BgorBgEEAdZ5AgQCBIIBbASCAWgB
ZgB1AK33vvp8/xDIi509nB4+GGq0Zyldz7EMJMqFhjTr3IKKAAABfoKti+AAAAQD
AEYwRAIgKDvWHQKhfduLkobkueLhCfPEkS1o8w04zmPBGH7YgnICIFGKe+nVpUjQ
ukvP3Ov/UFxreBzJSVEKCr/bBGqmsMzQAHUA6D7Q2j71BjUy51covIlryQPTy9ER
a+zraeF3fW0GvW4AAAF+gq2MDgAABAMARjBEAiAraqaoKG2eFB+FDiZeGw2PZ341
qwZf28pK8ExYC+s8LAIgVsORwgcHXofAnHjITRmhHs3uP6WL09siLHPWyxL9n1IA
dgCzc3cH4YRQ+GOG1gWp3BEJSnktsWcMC4fc8AMOeTalmgAAAX6CrYxhAAAEAwBH
MEUCIHZha2KOlIMNbH+M7Hixyg5zYoK3olF7tpesMppuDpY0AiEAiXBuWtdYN4Kk
6MA9GBPt9SDl7EMMOqrRGTvdl8ZIPOowDQYJKoZIhvcNAQELBQADggEBABroCt+E
eCdOdKYw9akyGHwuoyyMqxPyFZwL0oSt9X+tbAMpkf7x3fWOCMFodVP4gF0sdVj+
ghrMbqC6Tbu723wDEJ3c0E57bc1AEUURLGKeKc7jU3wGdo8DO4z5PpueL+jQLv22
XMg7on9EBS9BeEL+XWSJsOA5eHuReYJ7fLirYnGBwVPJQEhPp5pBrLazVDsyWY0R
L4/foRjt4Dm/BCPBNi4XU6oCmQcnwow9qVPI9IX2e/0csHuLDZYfpJYu6nnxOmvx
ZlNcdBGA2f9DywHkdy0rZG7QVTt/YNambIuDmNiAtdhj8DLsIiK7+PZUFLvikWN8
v5b80d7cipaU4ak=
-----END CERTIFICATE-----
subject=CN = rubygems.org
 
issuer=C = BE, O = GlobalSign nv-sa, CN = GlobalSign Atlas R3 DV TLS CA 2022 Q1
 
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3481 bytes and written 388 bytes
Verification error: unable to get local issuer certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 20 (unable to get local issuer certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 817D70ADD96C53DD494FC5BDF291F0B88BF8D933DE74C588E52E55087DE4C463
    Session-ID-ctx: 
    Resumption PSK: 2D7E91779F922410EF1FCF5A18738981A9B15EDE95FD728733F7E7F001FDC82F01F2C25B97CA8CA6A273FF4AD1C603B6
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 604800 (seconds)
    TLS session ticket:
    0000 - 02 9e 51 28 7b cb b2 15-31 64 fd 79 4f ec 64 b2   ..Q({...1d.yO.d.
    0010 - 13 d2 13 c9 e9 10 10 f9-9a 48 5b 77 0e fb 02 27   .........H[w...'
    0020 - 10 a8 47 bb 76 4c 00 b9-36 42 c2 ee 8c 2d 20 05   ..G.vL..6B...- .
    0030 - a0 69 1e ac c1 06 4f d4-9b 27 b1 f4 d8 68 72 46   .i....O..'...hrF
    0040 - 55 af de d0 a2 d1 77 b5-3f 7a 93 df 1c e7 2f a8   U.....w.?z..../.
    0050 - 4e 09 3e 45 7c a1 ec 70-c3 dc 69 df d3 fa d5 62   N.>E|..p..i....b
    0060 - 0c fc 10 34 8a 7e cd dd-11 6f ab 14 8e c0 01 4a   ...4.~...o.....J
    0070 - a7 31 66 d5 c3 8d 49 98-10 ca 38 9f f7 01 ec 2d   .1f...I...8....-
    0080 - 2c 94 ce d4 08 69 ff e4-dc 13 21 87 ce d8 9d 51   ,....i....!....Q
    0090 - 91 30 94 74 9e ef e0 4c-5f 85 76 3c e6 f1 4d e3   .0.t...L_.v<..M.
 
    Start Time: 1652753600
    Timeout   : 7200 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK

at_dominique.m…

2022年5月17日 11時37分

> コマンド実行いたしましたが変わらず062cdee6.0 のみございません。
> 同ロットにて複数台購入しており、現状2台確認を行っていますが、どちらも同じ状況です。

すみません、このファイルだけ無かったら「update-ca-certificates」のデフォルトでは再作成してくれなくて、試しに消したら「update-ca-certificates --fresh」で再作成できました。

> 初期化も検討いたします。

復帰できてもその方がいいので、お手数ですがよろしくお願いします。

> すみません、このファイルだけ無かったら「update-ca-certificates」のデフォルトでは再作成してくれなくて、試しに消したら「update-ca-certificates --fresh」で再作成できました。

update-ca-certificates --freshにてgem installも通るようになりました!
ありがとうございます。
137個ファイル追加されて062cdee6.0 も入りました。

root@armadillo:~# update-ca-certificates --fresh
Clearing symlinks in /etc/ssl/certs...
done.
Updating certificates in /etc/ssl/certs...
137 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.