Техническая поддержка является одним очевидным ответом. Однако состояние проекта и другой совместный материал могут извлечь выгоду из IRC - любой экземпляр, где это может сократить бесполезные встречи, хорошее использование IRC, по моему скромному мнению.
PEM-закодированный сертификат доступен Вашему приложению PHP в переменной среды
$SSL_CLIENT_CERT
Можно использовать PHP openssl функции для парсинга этого, которое дает Вам, поддерживают ассоциативный массив ключей сертификата и значений. Я предполагаю, что один из тех будет Вашим именем высокого звука.
http://uk3.php.net/manual/en/function.openssl-x509-parse.php
Это потребует модификаций к Вашему приложению PHP, но это не ужасно:
Мог легко быть упакован в функцию, которую Вы могли включать в несколько приложений, я буду думать.
Используйте var_dump ($ _ENV) и ищите переменные, запускающиеся с SSL_
Кроме того, проверьте SSLOptions из руководства апача. StdEnvVars и ExportCertData выглядят хорошими. Если первое не поможет, то возможно, необходимо будет проанализировать данные сертификата, переданные ExportCertData
Это взяло меня некоторое время для разработки этого, и информация справедливо рассеивается, таким образом, вот то, как я сделал это...
Сначала удостоверьтесь, что Ваш Apache имеет следующий набор:
SSLOptions +ExportCertData
иначе $ _SERVER ["SSL_CLIENT_CERT"] будет пробелом.
После того как Вы проверили, что $ _SERVER ["SSL_CLIENT_CERT"] имеет содержание, затем используйте:
$clicertarray = openssl_x509_parse($_SERVER["SSL_CLIENT_CERT"]);
для парсинга сертификата в массив затем Вы сможете вытянуть подчиненное альтернативное имя с:
$clicertarray["extensions"]["subjectAltName"];
SSLOptions +ExportCertData
и что это всегда будет медленнее, чем наличие Apache, дает Вам переменные. I' d рекомендуют использовать содержание DN если вообще возможный. – Dan Carley 29 July 2009 в 18:51