🧘

JenkinsからSlackへ通知ができない問題の解決

2024/01/31に公開

1. 環境

  • Jenkins:2.275
  • Jenkinsが稼働しているサーバー:CentOS release 6.10

2. 調査

Jenkinsのログの確認

  1. Jenkinsの左メニューから「Jenkinsの管理」を選択

  2. 「システムログ」を選択

  3. 「すべてのログ」をクリックしてログを確認したところ、下記エラーを発見。

unable to find valid certification path to requested target

訳すと、「要求されたターゲットへの有効な証明書のパスが見つからない」ということらしい。

  1. 「jenkins」、「slack」、「unable to find valid certification path to requested target」といったキーワードを頼りにググる。
    その結果、Slack( www.slack.com )の証明書をJVMに手動でインポートすれば良いことがわかりました。

3. Slackの証明書をJVMへ手動でインポート

  1. opensslコマンドでSlack( www.slack.com )の証明書を取得
# openssl s_client -connect www.slack.com:443
  1. 実行結果の中から「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までをコピーしファイルに保存する。
# vi /tmp/slack.crt
  1. 2で作成した証明書ファイルをインポート
sudo keytool -import -alias slack -keystore $JAVA_HOME/jre/lib/security/cacerts -file /tmp/slack.crt

4. Jenkinsを再起動

以上で無事JenkinsからSlackへの通知ができるようになりました。

Discussion