簡體   English   中英

調用openssl_pkey_new()時xampp openssl錯誤;

[英]xampp openssl errors when calling openssl_pkey_new();

所以我試圖讓openssl在我的Windows安裝xampp(1.7.3)上工作,這是用OpenSSL 0.9.8l構建的。 這是我第二次在* amp安裝上安裝openssl但是第一次游泳(這是在同一台機器上的wamp安裝,但我發現xampp更像是我的風格所以我切換了)。

當我嘗試一個簡單的設置腳本時:

var_dump(getenv('OPENSSL_CONF'));
$privateKey = openssl_pkey_new();

while($message = openssl_error_string()){
    echo $message.'<br />'.PHP_EOL;
}

我收到了一條返回的消息:

error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file  
error:0E064002:configuration file routines:CONF_load:system lib  

我讀了php.net頁面,告訴我需要設置openssl.cnf和ssleay.dll環境常量的可能性,我試過但沒有改變。

OPENSSL_CONFvar_dump導致路徑: C:/xampp/apache/bin/openssl.cnf這對我的機器是正確的。

我檢查了php目錄的路徑(ssleay32.dll和libeay32.dll所在的位置)是在我的路徑系統var中定義的,而不是,所以我定義了它,重新啟動了我的機器,並在此過程中重新啟動了apache,但錯誤消息沒有變化。

我的xampp版本沒有附帶php_openssl.dll,因此我相信php.ini文檔應該將它從可用的.dll列表中排除,就像我檢查時一樣。 我相信xampp會編譯一個基於zend的擴展。

我能夠從xampp gui啟動openssl,並且我成功地創建了一個私鑰/公鑰對。

phpinfo()報道:

openssl OpenSSL支持已啟用
OpenSSL庫版本OpenSSL
0.9.8l 2009年11月5日OpenSSL標題版本OpenSSL 0.9.8l 2009年11月5日

我在我的系統目錄中假設的wamp安裝中有一個舊的ssleay.dll和libeay32.dll但是我已經刪除了它們。 (重啟后重啟apache)

我試着將openssl.cnf復制到默認目錄'C:\\ usr \\ local \\ ssl \\ openssl.cnf'沒有變化。

我也閱讀了這個帖子和這個帖子,但給出的答案是相關的,但沒有幫助或不存在。

任何人對我接下來要檢查的內容或任何我錯過的明顯內容都有任何想法?

也許你需要在調用openssl_pkey_new()時指定openssl.cnf文件的路徑:

$configArgs = array(
    'config' => '/etc/openssl/openssl.cnf',
    // ...
);
openssl_pkey_new($configArgs);

您可能還需要在$configArgs指定其他設置才能使函數正常工作(最近沒有測試過)。 有關支持的其他配置參數的說明,另請參見http://php.net/manual/en/function.openssl-csr-new.php

檢查xampp / apache / conf / extra / http-xampp.conf中的OPENSSL_CONF變量

然后使用xampp / apache_start.bat啟動apache而不是XAMPP控制面板(奇怪的是,從控制面板啟動時它不起作用[可能是當前目錄問題])

這適用於Win7 64bit上的XAMPP 1.7.4

暫無
暫無

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

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