@fog_

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

SSL通信でエラー

解決したいこと

環境:Windows11,PHP 8.2.1
コマンドラインからPHPのプログラム実行したさい
curlを使ったSSL通信でエラーが発生します。

通信開始時にエラー

error:0308010C:digital envelope routines::unsupported 

該当するソースコード

   //SSL認証に必要な設定を追加
    if(ORCA_SSL_SWITCH){
    	curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'P12');
	    curl_setopt($ch, CURLOPT_SSLCERT, ORCA_SSL_P12);
	    curl_setopt($ch, CURLOPT_CAINFO, ORCA_SSL_CA);
	    curl_setopt($ch, CURLOPT_SSLCERTPASSWD, ORCA_SSL_PASS);
	    curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_DEFAULT);
    }

    // cURLリクエストを実行
    $response = curl_exec($ch);

試した内容

openssl 3.0でlegacy扱いになった暗号アルゴリズムのエラーでデフォルトでは無効になっており、設定で有効にできるとりあましたので下記を実行しております。

・php -i から取得した場所にopenssl.cnfを配置&設定、同様のエラーが発生
 場所:Openssl default config => C:\Program Files\Common Files\SSL/openssl.cnf

・環境設定 OPENSSL_CONFを配置&設定、同様のエラーが発生

・関係ないと思いますがphpinfoで取得したOpenssl default configのパスにあるC:\Apache24\conf\openssl.cnfも変更、同様のエラーが発生

0 likes

1Answer

設定を追加する前後でサポートされるアルゴリズムに変化があったか確認してはいかがでしょう?

php -r 'foreach(openssl_get_cipher_methods() as $a) echo $a.PHP_EOL;'
1Like

Comments

  1. @fog_

    Questioner

    ご回答ありがとうございます。
    問題が解決できました。
    下記を環境変数に設定することで解決しました。

    image.png

Your answer might help someone💌