簡體   English   中英

php套接字:使用不帶私鑰的Symantec證書

[英]php socket: using Symantec certificate without a private key

我正在開發一個與Nominet EPP服務器進行交互的php客戶端,正如我在其網站上所發現的: http : //registrars.nominet.uk/namespace/uk/registration-and-domain-management/registrar-systems/epp /注冊

我需要使用“ Verisign 3類公共主要證書頒發機構”根證書。 我在這里找到了一個(Verisign由Symantec購買): https : //knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&id=SO5624&actp=LIST&viewlocale=zh_CN

當我在php代碼中使用它時:

//$context = stream_context_create(array($this->protocol => $options));
$context = stream_context_create();
stream_context_set_option($context, $this->protocol, 'local_cert', __DIR__ . '/../../certificates/'.$this->certificate_path);

$errno = false;
$errstr = false;
$this->socket = stream_socket_client($this->protocol.'://'.$this->hostname.':'.$this->port, $errno, $errstr, 5 , STREAM_CLIENT_CONNECT, $context);

一切都OK:證書,端口,主機名的路徑……我得到:

"stream_socket_client(): Unable to set private key file ..."

我知道我需要一個私鑰,但是在Symentec網站上,他們沒有提供私鑰。

有人知道嗎?

非常感謝,

哈桑

您沒有使用正確的上下文選項。 此選項用於定義您的證書。 您想要的是使用找到的證書對對等服務器進行身份驗證,以確保您與正確的服務器進行了真正的對話。

如上所述:

為了驗證安全服務器的身份,您將需要可從www.verisign.com免費獲得的“ Verisign 3類公共主證書頒發機構”根證書(該證書也隨大多數Web瀏覽器一起分發)。

在PHP Doc上:

local_cert

字符串文件系統上本地證書文件的路徑。 它必須是包含您的證書和私鑰的PEM編碼文件。

但是您想要的是:

cafile

證書頒發機構文件在本地文件系統上的位置,應與verify_peer上下文選項一起使用以認證遠程對等方的身份。

暫無
暫無

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

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