Я работаю над ниже вещи:Проверка сертификатов SSL с использованием OpenSSL в PHP
Generate CSR(Certificate Signing Request)
Upload SSL Certificates
Для генерации сертификата SSL Я использую что-то вроде:
$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey);
$sscert = openssl_csr_sign($csr, null, $privkey, $days);
openssl_csr_export($csr, $csrout);
openssl_pkey_export($privkey, $pkeyout, $_POST['password']);
openssl_pkey_export_to_file($privkey, "<path/to/store/server.key>");
openssl_csr_export_to_file($csr, "/tmp/".<domain-name>.".csr");
Теперь, используя этот запрос CSR, я могу для генерации (domain-name.cer), (DigitalCert.cer).
Теперь, когда я загружаю эти (.cer) сертификаты, мне нужно проверить эти сертификаты.
Причина: Кто-то сгенерировал эти сертификаты, скажем, «a.com» и пытается загрузить на «b.com». это не должно происходить, поэтому я хочу проверить сертификаты загруженных SSL.
В PHP есть
$ ок = openssl_verify ($ данные, $ подпись, $ pubkeyid);
но я не могу получить то, что будет обрабатываться как $ data, $ signature и $ pubkeyid на основе вышеупомянутого процесса генерации сертификата.
http://stackoverflow.com/q/19955922/569976 Я думаю, что делает то, что вы пытаясь сделать? – neubert
В вашем коде выше, я не уверен, почему вы экспортируете CSR вместо $ sscert. Используете ли вы выходной CSR для создания другого сертификата? Метод openssl_verify() обычно не используется для проверки подписей сертификатов. – gtrig
thanks @gtrig, я использую выходной CSR для создания другого сертификата. –