簡體   English   中英

PHP:無法使用帶有功能stream_socket_client()的TLS協議設置私鑰文件

[英]PHP: Unable to set private key file using TLS protocol with function stream_socket_client()

我在使用TLS協議在PHP中使用stream_socket_client()連接服務器時遇到問題。

讓我在下面顯示我的代碼:

$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():無法在第9行的D:\\ xampp \\ htdocs \\ ssl_test \\ index2.php中設置私鑰文件`D:\\ xampp \\ htdocs \\ ssl_test \\ cert.pem'

警告:stream_socket_client():無法在第9行的D:\\ xampp \\ htdocs \\ ssl_test \\ index2.php中啟用加密

警告:stream_socket_client():無法連接到第9行D:\\ xampp \\ htdocs \\ ssl_test \\ index2.php中的tls://192.168.0.112:5443 / Exec(未知錯誤)

請注意,我有兩個用於證書cert.pem的公用文件,key.pem和password =“ 123456”

我不知道是什么錯誤或遺漏將stream_context_set_option()配置到服務器以及在哪里將key.pem設置為配置。

如果有人知道,請對此提供幫助。

非常感謝高級Vannak。

我找到了為什么出現此錯誤的解決方案,因為我的cert.pem需要附加的私鑰。 因此,我需要再添加一行附加key.pem。

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

希望這個問題對其他人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM