Я использую Apache 2.2.11, настроенный как обратный прокси. «Передняя сторона» прокси-сервера работает нормально, как и серверная часть, пока мы не включим аутентификацию на основе SSL-сертификата на задней (клиентской) стороне прокси.
Мой файл HTTPD conf содержит:
SSLProxyMachineCertificateFile /opt/apache/sfdc/myauth/myauth
Согласно документации, я объединил ключ и сертификат в файл «myauth». Я использую тот же сертификат и ключ, которые использовались для защиты HTTPS-соединения на лицевой стороне прокси. Это был объединенный кот ../server.key ../server.pem >> myauth
Закрытый ключ не защищен паролем.
Мой журнал Apache указывает:
[debug] ssl_engine_kernel.c(1526): Proxy client certificate callback: (obsucredhostname.com:8010) entered
[debug] ssl_engine_kernel.c(1571): Proxy client certificate callback: (obsucredhostname.com:8010) no client certificate found!?
Можно ли использовать ту же пару ключей сертификата, которая используется для защиты внешнего SSL? Мой интерфейс защищен подписывающим сервисом godaddys. Или я должен использовать отдельную и уникальную пару?
Когда вы подключаетесь к серверу (внутренняя часть), который требует аутентификации сертификата клиента, сервер предоставит клиенту (вашему прокси-серверу Apache) список допустимых имен CA, с которыми может быть подписан сертификат клиента. то есть список центров сертификации, которым сервер доверяет подписывать сертификаты клиентов.
Я подозреваю, что проблема в том, что ваш SSLProxyMachineCertificateFile
не подписан ЦС, приемлемым для сервера. Вы можете проверить имена ЦС, приемлемые для сервера, используя openssl.
openssl s_client -cert certfile -CAfile certfile -connect host:port
Там немного больше информации о проблеме на Apache bugzilla Вот, включая патч, который может помочь, если у вас нет доступа к конфигурации внутреннего сервера.