カテゴリー
ウェブサイト制作

PHP Failed to enable crypto

file_get_contents 関数でウェブページを読み込みするとき、次のエラーが出てしまいました。

Failed to enable crypto

他のウェブサイトの読み込みではそのエラーは出ないのですが、特定のウェブサイトを読み込む時だけエラーが発生します。

色々試してみると、原因はエラーが発生するウェブサイトに使用している SSL/TLS のバージョンが 1.1 で古いためでした。

そこで、file_get_contents に渡すコンテキストに SSL の値を追加しました。

[
    'http' => [
        'method' => 'GET'
    ],
    'ssl' => [
        'ciphers' => 'TLSv1',
        'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT
    ]
]

これで、TLS 1.1 を使った読み込みができるようになりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です