昨日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周りで検索しても特に分からず。
しばらくネットの情報をダラダラ探していると以下記事にたどり着く。
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でスプレッドシートにアクセスしてみると、とりあえず解消しました。
しかし、よく分からん癖に新しいもの使おうとすると苦労しますね。
この苦労も後の糧になる事を信じて、今後も邁進していきます。