【とりあえず解決】  
コマンドラインから叩くとテストサーバーのOS、opensllのバージョンが低いので出来ないという事でした。  
本番で試して今は問題なく動いています。  
いろいろと教えていただきありがとうございました。  
解決はどこを押せばいいのかわかりませんのでこちらに記載しました。

* * *

ブラウザ(chrome)からphpを叩くhttp通信だとslack通知は届くのですが  
teratermのコマンドラインでphp動かすと下のエラーが出ました。

OSバージョンは

```

    CentOS release 5.〇 (Final)
    OpenSSL 0.9.8e・・・ 2008
    
```

です。

file_get_contents のオプションには

```

    $options = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'Content-Type: application/json',
        'content' => json_encode($message),
    )
    ,
    'ssl' => array(
        'verify_peer'      => false,
        'verify_peer_name' => false
    )
    );
    
```

これをfile_get_contentsの第3引数に入れています。

```

    Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
    error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version in /usr・・・
    
```

とエラーが出てしまいました。なぜなんでしょうか？
CC BY-SA 4.0
2022-07-27T04:48:27.203
90228
2022-08-02T05:38:38.210
2022-08-02T05:38:38.210
20350
20350
question
php
file_get_contents関数からslack通知を送りたい
エラーメッセージで検索すれば分かるかと思いますが、OpenSSLライブラリのバージョンが古いのが原因かと思われます。

現状の環境を維持するなら OpenSSL をソースコードからコンパイルして新しいバージョンをインストールすることも可能かと思いますが、CentOS 5 は
2017年にサポート切れとなっているので、OS 自体の更新を検討したほうが良さそうです。
CC BY-SA 4.0
2022-07-27T05:26:39.723
90230
2022-07-27T05:26:39.723
3060
90228
answer