簡體   English   中英

PHP - SSL套接字客戶端證書

[英]PHP - SSL socket client certificate

我目前正在使用tcp套接字在PHP中使用套接字流在服務器和客戶端之間交換數據。 我希望每個客戶端都有一個唯一的證書(我將為他們生成)訪問我的服務器,以便只有我認識的人才能使用它。 我搜索並發現只在服務器端如何使用證書,這將使我能夠建立SSL套接字連接,但我真正需要的是使用客戶端服務器證書來識別連接到我的服務器的客戶端。 這可能使用PHP嗎?

我想像客戶端這樣連接:

$clientCert = './clientCert.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $clientCert);
$server = stream_socket_client('ssl://IP', $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

但是服務器如何處理(識別等)此客戶端證書?

希望我對我的問題很清楚。

謝謝,拉斐爾

您應該使用stream_context_set_optionverify_peer設置為true ; 這將要求另一方驗證客戶的證書是否可信。 通過檢查證書是否由受信任的機構簽名來完成驗證,因此您需要通過cafilecapath選項指定可以找到權限的公鑰的cafile

請注意,上述內容在服務器端(允許您對客戶端進行身份驗證) 客戶端上都適用 - 除非您明確指出,否則服務器也不會通過身份驗證。

暫無
暫無

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

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