よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

CentOS7 jrubyのSSL接続Error

昨日embulkを導入したので、早速Googleスプレッドシートのデータをmysqlに突っ込もうとした所、いきなり躓いたので記事にします。

目次

jrubyのエラー

embulkからGoogleスプレッドシートの情報を取得しようとした所、鬼のようにエラーを吐く。

# embulk run config.yml
********************************** INFORMATION **********************************
  Join us! Embulk-announce mailing list is up for IMPORTANT annoucement such as
    compatibility-breaking changes and key feature updates.
  https://groups.google.com/forum/#!forum/embulk-announce
*********************************************************************************

 [INFO] (0001:transaction): Loaded plugin embulk-input-google_spreadsheets (1.1.0)
 [INFO] (0001:transaction): Using local thread executor with max_threads=2 / tasks=1
 [INFO] (0001:transaction): {done:  0 / 1, running: 0}
 [INFO] (0001:transaction): {done:  1 / 1, running: 0}
org.embulk.exec.PartialExecutionException: org.jruby.exceptions.RaiseException: (SSLError) certificate verify failed
…
Caused by: org.jruby.exceptions.RaiseException: (SSLError) certificate verify failed
…

中略してますが、たくさんエラー文が出たので技術力も読解力も無い私は戸惑うだけでしたが(SSLError) certificate verify failed"くらいは理解出来た。SSLに何か問題があるらしい。
しかし同じ手順でembulkをインストールしたにも関わらず、他のサーバではエラーが出ず、このサーバのみで上記エラーが発生した。

原因調査

とりあえずembulkとinput-google_spreadsheets周りで検索しても特に分からず。
しばらくネットの情報をダラダラ探していると以下記事にたどり着く。

kamatama41.hatenablog.com

Ubuntuではセキュリティアップデートにより、Equifax Secure Certificate Authority のルートCA証明書が削除された模様。
該当サーバは最近新しく構築したので、CentOSのバージョンは7.4。恐らくUbuntuと同様に上記証明書が削除されたのではないかと考えた。

解決手段

とりあえず記事にもある通り、無くなったルートCA証明書を入れ直せばerrorが解消する気がするので試してみた。
※セキュリティアップデートで削除されたものを復活させるので、自己責任で対応して下さい。

# vi /usr/share/pki/ca-trust-source/anchors/Equifax_Secure_Certificate_Authority.pem
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
-----END CERTIFICATE-----

# update-ca-trust extract

こちらを実行後、再度embulkでスプレッドシートにアクセスしてみると、とりあえず解消しました。
しかし、よく分からん癖に新しいもの使おうとすると苦労しますね。
この苦労も後の糧になる事を信じて、今後も邁進していきます。