Как добавить центр сертификации в PHP, чтобы функция file () доверяла сертификатам, подписанным им?

Мне нужно открыть удаленные ресурсы, которые подписаны центром сертификации частной компании. Прямо сейчас, PHP не будет открывать ресурсы, потому что он не доверяет подписавшему сертификат.

Я знаю, что вы можете создавать сертификаты с помощью объекта потокового контекста, но я ищу способ дать PHP открытый ключ нового центра сертификации и получить file() и аналогичные методы доверяют удаленным сертификатам, подписанным этим органом без необходимости создавать потоковый контекст каждый раз.

Есть ли способ добавить новый центр сертификации в php.ini? Я попытался добавить открытый ключ CA в /etc/ssl/certs/, но это, кажется, не признается.

2

Решение

Curl использует один файл со всеми CA в нем. Чтобы добавить новый CA в Curl / PHP, вам нужно получить полный пакет, добавить свой сертификат в пакет, а затем указать PHP использовать собственный пакет.

  1. Загрузите последнюю версию пакета от CURL и сохраните ее в /etc/ssl/certs/cacert.pem:

curl --remote-name --time-cond cacert.pem https://curl.haxx.se/ca/cacert.pem

  1. Изменить /etc/ssl/certs/cacert.pem файл, и добавьте ваш новый открытый ключ CA в нижней части.

  2. редактировать php.ini и добавьте строку openssl.cafile=/etc/ssl/certs/cacert.pem наверх (или вниз).

  3. Перезапустите веб-сервер.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector