2016-06-20 19 views
1

PHPでstream_socket_client()を使用してTLSプロトコルを使用してサーバーに接続する際に問題があります。PHP:関数stream_socket_client()でTLSプロトコルを使用してプライベートキーファイルを設定できません

私は以下の私のコードをお見せしましょう:

警告::stream_socket_client():プライベートキーファイル `Dを設定することができません

$host = '192.168.0.112'; 
$context = stream_context_create(); 
$result = stream_context_set_option($context, 'ssl', 'local_cert', 'D:/xampp/htdocs/ssl_test/cert.pem'); 
$result = stream_context_set_option($context, 'ssl', 'verify_peer', 'true'); 
$result = stream_context_set_option($context, 'ssl', 'passphrase', '123456'); 
$socket = stream_socket_client('tls://'.$host.':5443/Exec', $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); 

私が実行した後、私はこのようなメッセージのエラーを得ました:stream_socket_client():D:\ xampp \ htdocs \で暗号化を有効にできませんでした:\ xampp \ htdocs \ ssl_test \ cert.pemのD:\ xampp \ htdocs \ ssl_test \ index2.php 9行目

警告: ssl_test \ index2.php on line 9

警告:stream_socket_client():TLSに接続できません://192.168.0.112:5443/ExecのDにおいて(不明なエラー):\ XAMPP \ htdocsに\ ssl_test \ index2.php線上9

証明書cert.pem、key.pem、およびパスワード= "123456"の2つの共通ファイルがあることに注意してください。

サーバーへのstream_context_set_option()と設定する場所がわかりませんkey.pemを設定に追加します。

誰かが知っている場合は、私にこれを手伝ってください。

多くのありがとうございました。 Vannak。

答えて

1

私のcert.pemにはアタッチプライベートキーが必要なため、このエラーが発生した理由がわかりました。だから、私のkey.pemをつける行をもう1つ追加する必要があります。

stream_context_set_option($context, 'ssl', 'local_pk', 'D:/xampp/htdocs/ssl_test/key.pem'); 

この問題は、他の人にとって役に立ちます。

関連する問題