我需要打開由私人公司的證書頒發機構簽名的遠程資源。目前,PHP不會打開資源,因爲它不信任證書籤名者。如何將證書頒發機構添加到PHP,以便file()函數信任由它簽名的證書?
我知道你可以使用流上下文對象執行證書,但是我正在尋找一種方法來給PHP一個新的證書頒發機構的公鑰,並讓file()
和類似方法信任由該機構簽署的遠程證書,而不必每次創建流上下文。
有沒有辦法給php.ini添加一個新的證書頒發機構?我試圖將CA的公鑰添加到/etc/ssl/certs/
,但似乎並未得到承認。
我需要打開由私人公司的證書頒發機構簽名的遠程資源。目前,PHP不會打開資源,因爲它不信任證書籤名者。如何將證書頒發機構添加到PHP,以便file()函數信任由它簽名的證書?
我知道你可以使用流上下文對象執行證書,但是我正在尋找一種方法來給PHP一個新的證書頒發機構的公鑰,並讓file()
和類似方法信任由該機構簽署的遠程證書,而不必每次創建流上下文。
有沒有辦法給php.ini添加一個新的證書頒發機構?我試圖將CA的公鑰添加到/etc/ssl/certs/
,但似乎並未得到承認。
Curl使用一個包含所有CA的文件。要爲Curl/PHP添加新的CA,您需要獲得完整的包,將您的證書添加到包中,然後告訴PHP使用自定義包。
/etc/ssl/certs/cacert.pem
:curl --remote-name --time-cond cacert.pem https://curl.haxx.se/ca/cacert.pem
編輯/etc/ssl/certs/cacert.pem
文件,並添加新的CA公鑰關鍵的底部。
編輯php.ini
並將行openssl.cafile=/etc/ssl/certs/cacert.pem
添加到頂部(或底部)。
重新啓動網絡服務器。